我收到以下异常:
org.springframework.orm.hibernate3.HibernateSystemException: Named query not known:
实体类头:
@Entity @NamedNativeQuery( callable = true, name = "_Foo_SP", query = "call _Foo()", readOnly = true, resultClass = Foo.class ) public class Foo { //...properties omitted for brevity }
在hibernate.cfg.xml中:
<mapping class="com.company.test.Foo" />
在测试课程中:
private static HibernateTemplate HIBERNATE_TEMPLATE; public static void main( final String[] args ) { HIBERNATE_TEMPLATE = new HibernateTemplate( new AnnotationConfiguration().addAnnotatedClass( Foo.class ).configure().buildSessionFactory() ); new HibernateTest().test(); } public void test() { List findByNamedQuery = HIBERNATE_TEMPLATE.findByNamedQuery( "_Foo_SP" ); for( Object object : findByNamedQuery ) { System.out.println( object ); System.out.println( object.getClass().getName() ); } }
我在没有注释的情况下进行了此工作(例如:在映射文件中使用映射),但是简单地使用JPA注释来声明映射似乎更直观-但我似乎无法使其正常工作。
我在这里做错了什么?我要做什么甚至有可能吗?看来我不是唯一遇到这种情况的人,请参阅:这里。
我正在使用hibernate3.5.6-FINAL FWIW。
TIA
问题是我使用了错误的@Entity类。当我使用时:
org.hibernate.annotations.Entity
我会得到上面的问题。但是,一旦我切换到:
javax.persistence.Entity
有用!