| I migrated from wildfly 8 to wildfly 10 and have this issue too. Environment: java 8u45, wildfly 10.0.0.Final, hibernate-core 5.0.7.Final, hibernate-infinispan-5.0.7.Final, infinispan 8.1.0.Final. The region named readonly-cache-region used for both entity and collection mapping. During wildfly startup we have exception:
13:53:42,981 ERROR [fail] (ServerService Thread Pool -- 58) MSC000001: Failed to start service jboss.persistenceunit."argus-enterprise-3.14.0.ear#ArgusPU": org.jboss.msc.service.StartException in service jboss.persistenceunit."argus-enterprise-3.14.0.ear#ArgusPU": javax.persistence.PersistenceException: [PersistenceUnit: ArgusPU] Unable to build Hibernate SessionFactory
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117)
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:667)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: ArgusPU] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882)
at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154)
... 7 more
Caused by: java.lang.ClassCastException: org.hibernate.cache.infinispan.entity.ReadOnlyAccess cannot be cast to org.hibernate.cache.spi.access.CollectionRegionAccessStrategy
at org.hibernate.internal.SessionFactoryImpl.determineCollectionRegionAccessStrategy(SessionFactoryImpl.java:634)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:391)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879)
... 9 more
Exception throwed by SessionFactoryImpl#determineCollectionRegionAccessStrategy on collection mapping processing because earlier in SessionFactoryImpl constructor (during entity mapping processing) region with name readonly-cache-region was instantiated as EntityRegion, not CollectionRegion. See #determineEntityRegionAccessStrategy call in SessionFactoryImpl constructor. In previous hibernate version was not type-split on EntityRegion and CollectionRegion. Workaround : do not use single cache region (i.e value of org.hibernate.annotations.Cache#region) for entities and collections. For example, i converted my readonly-cache-region to readonly-collection-cache-region in collection mappings. |