1. Problem Description
2. Analysis
2.2 Online clue
James Replied on May 12,2013 : It seems that you have not configured com.xxx.integration.broker.vo.CustomerInfo in hibernate.cfg.xml. Hibernate will not consider any entity if it is not configured in hibernate.cfg.xml
I configured a VO rather than Entity in <sql-query><return>, then,
when run jUnit, encountered this:
Caused by: org.hibernate.HibernateException: Errors in named queries: getCustomerInfo
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:528)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1750)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1788)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
(AbstractAutowireCapableBeanFactory.java:1571)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1509)
... 53 more
2. Analysis
2.1 Enable log4j
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c:%L - %m%n" />
</layout>
</appender>
<root>
<level value="debug" />
<appender-ref ref="stdout" />
</root>
</log4j:configuration>
With log4j enabled, I can see following detailed error in console when running junit test. I see 'Unknown entity'.
19:31:16,766 ERROR org.hibernate.internal.SessionFactoryImpl:524 - HHH000177: Error in named query: getCustomerInfo
org.hibernate.MappingException: Unknown entity: com.xxx.integration.broker.vo.CustomerInfo
2.2 Online clue
James Replied on May 12,2013 : It seems that you have not configured com.xxx.integration.broker.vo.CustomerInfo in hibernate.cfg.xml. Hibernate will not consider any entity if it is not configured in hibernate.cfg.xml
3. Solution
Take a look at this example, use VO rather than Entity to map a named native query.
http://blog.csdn.net/derek_zhang_/article/details/18367401