otrzymuję następujący wyjątek:Nazwany kwerendy nie wiadomo - Adnotacje i Hibernate
org.springframework.orm.hibernate3.HibernateSystemException: Named query not known:
Podmiot klasa nagłówek:
@Entity
@NamedNativeQuery(callable = true, name = "_Foo_SP", query = "call _Foo()", readOnly = true, resultClass = Foo.class)
public class Foo {
//...properties omitted for brevity
}
W hibernate.cfg.xml:
<mapping
class="com.company.test.Foo" />
I w klasie testowej:
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());
}
}
Miałem to działa bez adnotacji (np. Z mapowaniem w pliku odwzorowania), ale wydaje się bardziej intuicyjne po prostu użycie adnotacji JPA do deklarowania mapowań - ale nie mogę sprawić, żeby działało.
Co ja tu robię źle? Czy to, co próbuję zrobić, nawet możliwe? Wygląda na to, że nie jestem jedynym, który to napotkał, zobacz: here.
Używam hibernacji 3.5.6-FINAL FWIW.
TIA
Próbowałem sam próbkę i działa dobrze. Spróbuj usunąć z hibernate.cfg.xml po zadeklarowaniu go w AnnotationConfiguration –
Po prostu próbowałem tego i nie zadziałało. – javamonkey79