ich die folgende Ausnahme bin immer:benannte Abfrage nicht bekannt - Anmerkungen & Hibernate
org.springframework.orm.hibernate3.HibernateSystemException: Named query not known:
Entity-Klasse-Header:
@Entity
@NamedNativeQuery(callable = true, name = "_Foo_SP", query = "call _Foo()", readOnly = true, resultClass = Foo.class)
public class Foo {
//...properties omitted for brevity
}
Im hibernate.cfg.xml:
<mapping
class="com.company.test.Foo" />
Und in einer Testklasse:
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());
}
}
Ich hatte dies funktioniert ohne Anmerkungen (zB: mit dem Mapping in einer Mapping-Datei), aber es scheint intuitiver, einfach die JPA-Annotationen zu verwenden, um Mappings zu deklarieren - aber ich kann es nicht funktionieren.
Was mache ich hier falsch? Ist das, was ich versuche, überhaupt möglich? Es scheint, dass ich nicht der Einzige bin, der darauf stößt, siehe: here.
Ich verwende Hibernate 3.5.6-FINAL FWIW.
TIA
Ich habe meine Probe ausprobiert und es funktioniert gut. Versuchen Sie, aus hibernate.cfg.xml zu entfernen, nachdem Sie es in der AnnotationConfiguration deklariert haben. –
Ich habe das gerade versucht und es hat nicht funktioniert. – javamonkey79