Sto ottenendo il seguente eccezione:query denominata non nota - Annotazioni e Hibernate
org.springframework.orm.hibernate3.HibernateSystemException: Named query not known:
Entity classe intestazione:
@Entity
@NamedNativeQuery(callable = true, name = "_Foo_SP", query = "call _Foo()", readOnly = true, resultClass = Foo.class)
public class Foo {
//...properties omitted for brevity
}
Nella hibernate.cfg.xml:
<mapping
class="com.company.test.Foo" />
E in una classe di test:
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());
}
}
Ho avuto questo funzionamento senza annotazioni (ad esempio: con la mappatura in un file di mappatura) ma sembra più intuitivo utilizzare semplicemente le annotazioni JPA per dichiarare mappature - ma non riesco a farlo funzionare.
Cosa sto facendo di sbagliato qui? Quello che sto cercando di fare è anche possibile? Sembra che non sia l'unico a trovarlo, vedi: here.
Sto utilizzando Hibernate 3.5.6-FINAL FWIW.
TIA
Ho provato da solo il tuo campione e funziona perfettamente. Prova a rimuovere da hibernate.cfg.xml dopo averlo dichiarato in AnnotationConfiguration –
ho appena provato e non ha funzionato. – javamonkey79