Java 偶尔出现异常org.hibernate.QueryException:无法解析属性
问题: 在高负载下的web应用程序中,有时,当在不同的线程(在同一毫秒内)中同时有两个Hibernate查询时,我们有两个异常(在两个线程中):“org.Hibernate.QueryException:无法解析属性”在不同的实体和不同的属性上。 看起来两个查询出于某种原因交换了它们的属性映射,因此AbstractPropertyMapping类无法在其他查询的实体的映射中找到所需的属性,并引发QueryException。每个实体仅在一个线程中使用 环境:Java 偶尔出现异常org.hibernate.QueryException:无法解析属性,java,multithreading,spring,hibernate,high-load,Java,Multithreading,Spring,Hibernate,High Load,问题: 在高负载下的web应用程序中,有时,当在不同的线程(在同一毫秒内)中同时有两个Hibernate查询时,我们有两个异常(在两个线程中):“org.Hibernate.QueryException:无法解析属性”在不同的实体和不同的属性上。 看起来两个查询出于某种原因交换了它们的属性映射,因此AbstractPropertyMapping类无法在其他查询的实体的映射中找到所需的属性,并引发QueryException。每个实体仅在一个线程中使用 环境: <!-- Configurat
<!-- Configuration -->
...
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
<property name="nestedTransactionAllowed" value="true" />
</bean>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>com.delta.invest.domain</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.connection.charSet">UTF-8</prop>
<!-- For debuging purposes -->
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<!-- @see: http://community.jboss.org/wiki/HibernateCoreMigrationGuide36 -->
<prop key="hibernate.jdbc.use_streams_for_binary">false</prop>
<!-- For batch inserts -->
<prop key="hibernate.jdbc.batch_size">20</prop>
<prop key="hibernate.order_inserts">true</prop>
<prop key="hibernate.order_updates">true</prop>
<prop key="hibernate.jdbc.batch_versioned_data">true</prop>
<!-- prop key="hibernate.cache.use_second_level_cache">false</prop-->
<!-- Second-level cache -->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
<!-- Autoregister Joda types -->
<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
<!-- Turn off domain classes validation -->
<prop key="javax.persistence.validation.mode">none</prop>
<!-- Set TRANSACTION_READ_COMMITTED isolation level -->
<prop key="hibernate.connection.isolation">2</prop>
</props>
</property>
</bean>
...
Caused by: org.hibernate.QueryException: could not resolve property: accountTo of: com.delta.invest.domain.entity.core.A
ccountEntry
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:77)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1978)
at org.hibernate.loader.criteria.EntityCriteriaInfoProvider.getType(EntityCriteriaInfoProvider.java:57)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathInfo(CriteriaQueryTranslator.java:245)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.jav
a:229)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.<init>(CriteriaQueryTranslator.java:112)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:88)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1663)
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:402)
at com.delta.invest.dao.kernel.SelectionDAOImpl.getCount(SelectionDAOImpl.java:216)
at com.delta.invest.service.SelectionServiceImpl.getRowCountByCriteria(SelectionServiceImpl.java:406)
at com.delta.invest.service.SelectionServiceImpl.getSize(SelectionServiceImpl.java:185)
at sun.reflect.GeneratedMethodAccessor422.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspec
tSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy99.getSize(Unknown Source)
at com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
at com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
at com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspec
tSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy99.getSize(Unknown Source)
at com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
at com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
at com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.
java:122)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at net.bull.javamelody.MonitoringSpringInterceptor.invoke(MonitoringSpringInterceptor.java:73)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy220.getDocumentsHistoryForOperator(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
... 91 more
@Repository(value="selectionDAO")
public class SelectionDAOImpl implements SelectionDAO
{
...
@Autowired
private SessionFactory sessionFactory;
...
public <Entity> List<Entity> list( Class<Entity> entityClass, final DetachedCriteria detachedCriteria,
final int firstResult, final int maxResults )
{
Criteria criteria = detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession());
if ( firstResult > 0 ) { criteria.setFirstResult( firstResult ); }
if ( maxResults > 0 ) { criteria.setMaxResults( maxResults ); }
return (List<Entity>) criteria.list();
}
public Long getCount( final DetachedCriteria detachedCriteria )
{
return (Long) detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession()).setProjection( Projections.rowCount() ).uniqueResult();
}
...
}
- ApacheTomcat7
- 春季4.0.6
- Hibernate 4.3.6.1最终版本
<!-- Configuration -->
...
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
<property name="nestedTransactionAllowed" value="true" />
</bean>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>com.delta.invest.domain</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.connection.charSet">UTF-8</prop>
<!-- For debuging purposes -->
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<!-- @see: http://community.jboss.org/wiki/HibernateCoreMigrationGuide36 -->
<prop key="hibernate.jdbc.use_streams_for_binary">false</prop>
<!-- For batch inserts -->
<prop key="hibernate.jdbc.batch_size">20</prop>
<prop key="hibernate.order_inserts">true</prop>
<prop key="hibernate.order_updates">true</prop>
<prop key="hibernate.jdbc.batch_versioned_data">true</prop>
<!-- prop key="hibernate.cache.use_second_level_cache">false</prop-->
<!-- Second-level cache -->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
<!-- Autoregister Joda types -->
<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
<!-- Turn off domain classes validation -->
<prop key="javax.persistence.validation.mode">none</prop>
<!-- Set TRANSACTION_READ_COMMITTED isolation level -->
<prop key="hibernate.connection.isolation">2</prop>
</props>
</property>
</bean>
...
Caused by: org.hibernate.QueryException: could not resolve property: accountTo of: com.delta.invest.domain.entity.core.A
ccountEntry
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:77)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1978)
at org.hibernate.loader.criteria.EntityCriteriaInfoProvider.getType(EntityCriteriaInfoProvider.java:57)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathInfo(CriteriaQueryTranslator.java:245)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.jav
a:229)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.<init>(CriteriaQueryTranslator.java:112)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:88)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1663)
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:402)
at com.delta.invest.dao.kernel.SelectionDAOImpl.getCount(SelectionDAOImpl.java:216)
at com.delta.invest.service.SelectionServiceImpl.getRowCountByCriteria(SelectionServiceImpl.java:406)
at com.delta.invest.service.SelectionServiceImpl.getSize(SelectionServiceImpl.java:185)
at sun.reflect.GeneratedMethodAccessor422.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspec
tSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy99.getSize(Unknown Source)
at com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
at com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
at com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspec
tSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy99.getSize(Unknown Source)
at com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
at com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
at com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.
java:122)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at net.bull.javamelody.MonitoringSpringInterceptor.invoke(MonitoringSpringInterceptor.java:73)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy220.getDocumentsHistoryForOperator(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
... 91 more
@Repository(value="selectionDAO")
public class SelectionDAOImpl implements SelectionDAO
{
...
@Autowired
private SessionFactory sessionFactory;
...
public <Entity> List<Entity> list( Class<Entity> entityClass, final DetachedCriteria detachedCriteria,
final int firstResult, final int maxResults )
{
Criteria criteria = detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession());
if ( firstResult > 0 ) { criteria.setFirstResult( firstResult ); }
if ( maxResults > 0 ) { criteria.setMaxResults( maxResults ); }
return (List<Entity>) criteria.list();
}
public Long getCount( final DetachedCriteria detachedCriteria )
{
return (Long) detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession()).setProjection( Projections.rowCount() ).uniqueResult();
}
...
}
...
com.delta.invest.domain
org.hibernate.dialogue.PostgreSqlDialogue
UTF-8
假的
真的
真的
假的
20
真的
真的
真的
真的
org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
ehcache.xml
真的
没有一个
2.
...
第一个线程中出现异常:
<!-- Configuration -->
...
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
<property name="nestedTransactionAllowed" value="true" />
</bean>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>com.delta.invest.domain</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.connection.charSet">UTF-8</prop>
<!-- For debuging purposes -->
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<!-- @see: http://community.jboss.org/wiki/HibernateCoreMigrationGuide36 -->
<prop key="hibernate.jdbc.use_streams_for_binary">false</prop>
<!-- For batch inserts -->
<prop key="hibernate.jdbc.batch_size">20</prop>
<prop key="hibernate.order_inserts">true</prop>
<prop key="hibernate.order_updates">true</prop>
<prop key="hibernate.jdbc.batch_versioned_data">true</prop>
<!-- prop key="hibernate.cache.use_second_level_cache">false</prop-->
<!-- Second-level cache -->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
<!-- Autoregister Joda types -->
<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
<!-- Turn off domain classes validation -->
<prop key="javax.persistence.validation.mode">none</prop>
<!-- Set TRANSACTION_READ_COMMITTED isolation level -->
<prop key="hibernate.connection.isolation">2</prop>
</props>
</property>
</bean>
...
Caused by: org.hibernate.QueryException: could not resolve property: accountTo of: com.delta.invest.domain.entity.core.A
ccountEntry
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:77)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1978)
at org.hibernate.loader.criteria.EntityCriteriaInfoProvider.getType(EntityCriteriaInfoProvider.java:57)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathInfo(CriteriaQueryTranslator.java:245)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.jav
a:229)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.<init>(CriteriaQueryTranslator.java:112)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:88)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1663)
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:402)
at com.delta.invest.dao.kernel.SelectionDAOImpl.getCount(SelectionDAOImpl.java:216)
at com.delta.invest.service.SelectionServiceImpl.getRowCountByCriteria(SelectionServiceImpl.java:406)
at com.delta.invest.service.SelectionServiceImpl.getSize(SelectionServiceImpl.java:185)
at sun.reflect.GeneratedMethodAccessor422.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspec
tSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy99.getSize(Unknown Source)
at com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
at com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
at com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspec
tSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy99.getSize(Unknown Source)
at com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
at com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
at com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.
java:122)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at net.bull.javamelody.MonitoringSpringInterceptor.invoke(MonitoringSpringInterceptor.java:73)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy220.getDocumentsHistoryForOperator(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
... 91 more
@Repository(value="selectionDAO")
public class SelectionDAOImpl implements SelectionDAO
{
...
@Autowired
private SessionFactory sessionFactory;
...
public <Entity> List<Entity> list( Class<Entity> entityClass, final DetachedCriteria detachedCriteria,
final int firstResult, final int maxResults )
{
Criteria criteria = detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession());
if ( firstResult > 0 ) { criteria.setFirstResult( firstResult ); }
if ( maxResults > 0 ) { criteria.setMaxResults( maxResults ); }
return (List<Entity>) criteria.list();
}
public Long getCount( final DetachedCriteria detachedCriteria )
{
return (Long) detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession()).setProjection( Projections.rowCount() ).uniqueResult();
}
...
}
原因:org.hibernate.QueryException:无法解析属性:accountTo of:com.delta.invest.domain.entity.core.A
会计中心
位于org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
位于org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:77)
位于org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1978)
位于org.hibernate.loader.criteria.EntityCriteriaInfoProvider.getType(EntityCriteriaInfoProvider.java:57)
位于org.hibernate.loader.CriteriaQueryTranslator.getPathInfo(CriteriaQueryTranslator.java:245)
在org.hibernate.loader.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.jav
a:229)
位于org.hibernate.loader.CriteriaQueryTranslator。(CriteriaQueryTranslator.java:112)
位于org.hibernate.loader.criteria.CriteriaLoader.(CriteriaLoader.java:88)
位于org.hibernate.internal.SessionImpl.list(SessionImpl.java:1663)
位于org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
位于org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:402)
位于com.delta.invest.dao.kernel.SelectionDAOImpl.getCount(SelectionDAOImpl.java:216)
位于com.delta.invest.service.SelectionServiceImpl.getRowCountByCriteria(SelectionServiceImpl.java:406)
位于com.delta.invest.service.SelectionServiceImpl.getSize(SelectionServiceImpl.java:185)
位于sun.reflect.GeneratedMethodAccessor422.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:157)上
位于org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpec
tSupport.java:262)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:179)上
位于org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
位于com.sun.proxy.$Proxy99.getSize(未知源)
位于com.delta.invest.service.PageSelectionServiceImpl.getSize(PageSelectionServiceImpl.java:60)
位于com.delta.invest.paging.PagingCollection.size(PagingCollection.java:64)
位于com.delta.invest.ws.document.DocumentWebServiceImpl.getDocumentsHistoryForOperator(DocumentWebServiceImpl.jav
a:344)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:
190)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:157)上
位于org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterce
ptor.java:98)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpec
tSupport.java:262)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:179)上
位于org.springframework.aop.framework.Jdk