Hibernate 在CacheKey.equals方法中休眠Infinispan NullPointerException

Hibernate 在CacheKey.equals方法中休眠Infinispan NullPointerException,hibernate,jboss7.x,seam2,infinispan,Hibernate,Jboss7.x,Seam2,Infinispan,我正在尝试在我的应用程序中使用Infinispan 5.1.5 Final。我使用以下环境: JBossAS 7.1.1最终版 Hibernate Core 4.1.5.SP1 Hibernate搜索4.1.1最终版本 英菲尼斯潘5.1.5决赛 JBoss Seam 2.3.0 Beta2 在应用程序启动时,我尝试查看管理员用户帐户是否存在,如果不存在,我将创建它们。详情如下: private void initDefaultUsersAndRoles(){ log.inf

我正在尝试在我的应用程序中使用Infinispan 5.1.5 Final。我使用以下环境:

  • JBossAS 7.1.1最终版
  • Hibernate Core 4.1.5.SP1
  • Hibernate搜索4.1.1最终版本
  • 英菲尼斯潘5.1.5决赛
  • JBoss Seam 2.3.0 Beta2
在应用程序启动时,我尝试查看管理员用户帐户是否存在,如果不存在,我将创建它们。详情如下:

private void initDefaultUsersAndRoles(){

        log.info("Initializing Default Roles And Passwords");

        Role adminRole = roleDAO.getByName("administrator");

        if (adminRole == null) {
           //create new admin role
        }


        User admin = userDAO.findByUsername("admin ");

        if (admin  == null) {
            //create new admin user
        }
}
我在userDAO.findByUsername方法中得到一个异常,如下所示:

public User findByUsername(String username) {
        User user;
        try{
          Query q = getEm().createQuery("SELECT e FROM "
                             + entityClass.getName() + " e WHERE username = :username");
                              q.setParameter("username", username );
                              q.setHint("org.hibernate.cacheable", "true" );

                              user = (User) q.getSingleResult();
         }
         catch( NoResultException e ){
             return null;
         }

         return user;
}
在执行

user = (User) q.getSingleResult()
我得到以下错误:

Caused by: java.lang.NullPointerException
    at org.hibernate.cache.spi.CacheKey.equals(CacheKey.java:81) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.infinispan.context.SingleKeyNonTxInvocationContext.lookupEntry(SingleKeyNonTxInvocationContext.java:93)
    at org.infinispan.container.EntryFactoryImpl.getFromContext(EntryFactoryImpl.java:204)
    at org.infinispan.container.EntryFactoryImpl.wrapEntryForReading(EntryFactoryImpl.java:80)
    at org.infinispan.interceptors.EntryWrappingInterceptor.visitGetKeyValueCommand(EntryWrappingInterceptor.java:112)
    at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:60)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
    at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitGetKeyValueCommand(NonTransactionalLockingInterceptor.java:57)
    at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:60)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
    at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:130)
    at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:104)
    at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:60)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
    at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:132)
    at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:91)
    at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:104)
    at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:60)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
    at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:130)
    at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager$ClassLoaderAwareCommandInterceptor.handleDefault(DefaultEmbeddedCacheManager.java:410)
    at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:104)
    at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:60)
    at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:345)
    at org.infinispan.CacheImpl.containsKey(CacheImpl.java:259)
    at org.infinispan.DecoratedCache.containsKey(DecoratedCache.java:309)
    at org.infinispan.AbstractDelegatingCache.containsKey(AbstractDelegatingCache.java:293)
    at org.hibernate.cache.infinispan.util.CacheAdapterImpl.containsKey(CacheAdapterImpl.java:214) [hibernate-infinispan-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.cache.infinispan.access.TransactionalAccessDelegate.putFromLoad(TransactionalAccessDelegate.java:87) [hibernate-infinispan-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.cache.infinispan.entity.TransactionalAccess.putFromLoad(TransactionalAccess.java:52) [hibernate-infinispan-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:224) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:134) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:998) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.Loader.doQuery(Loader.java:877) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:292) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.Loader.doList(Loader.java:2381) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2226) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.Loader.list(Loader.java:2189) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1248) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) [hibernate-core-4.1.5.SP1.jar:4.1.5.SP1]
    at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:285) [hibernate-entitymanager-4.1.5.SP1.jar:4.1.5.SP1]
    at com.cano.pxt.dao.UserDAO.findByUsername(UserDAO.java:35) [pxt-ejb.jar:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_01]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_01]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_01]
    at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_01]
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:44) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke(EntityManagerProxyInterceptor.java:29) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke(HibernateSessionProxyInterceptor.java:30) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) [jboss-seam.jar:2.3.0.Beta2]
    at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50) [jboss-seam.jar:2.3.0.Beta2]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_01]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_01]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_01]
    at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_01]
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:123) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:202) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
    ... 101 more
My persistence.xml包含以下用于hibernate查询和二级缓存的行:

<property name="hibernate.cache.region.factory_class" value="org.jboss.as.jpa.hibernate4.infinispan.InfinispanRegionFactory" />
<property name="hibernate.cache.infinispan.cachemanager" value="java:jboss/infinispan/hibernate" />

我的用户实体类实现了equals和hashCode方法

有人知道什么地方出了问题吗?提前感谢。

交叉发布到并解决(发现一个错误)