2010-10-27 17 views
7

aşağıdaki özel durum alıyorum:Adlandırılan sorgu bilinmemektedir - Açıklamalar ve hazırda

org.springframework.orm.hibernate3.HibernateSystemException: Named query not known: 

Varlık sınıfı başlığı: hibernate.cfg.xml olarak

@Entity 
@NamedNativeQuery(callable = true, name = "_Foo_SP", query = "call _Foo()", readOnly = true, resultClass = Foo.class) 
public class Foo { 
    //...properties omitted for brevity 
} 

:

<mapping 
     class="com.company.test.Foo" /> 

Ve bir test sınıfında:

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()); 
    } 
} 

Bu, ek açıklama yapmadan çalışmıştı (örneğin: bir eşleme dosyasında eşleme ile), ancak eşleme bildirmek için JPA ek açıklamalarını kullanmak daha sezgisel gibi görünüyor - ama işe yaramaya gelemiyorum.

Burada yanlış olan ne yapıyorum? Yapmaya çalıştığım şey mümkün mü? Bununla karşılaşan tek kişi ben değilim, bkz .: here.

Hazırda bekletme 3.5.6 FİNİŞ FWIW kullanıyorum.

TIA

+1

Örnek olarak kendim denedim ve iyi çalışıyor. AnnotationConfiguration –

+0

içinde bildirdikten sonra hibernate.cfg.xml 'den dosyasını kaldırmayı denedim ve bunu denedim ve işe yaramadı. – javamonkey79

cevap

4

sorun yanlış @Entity sınıfını kullanarak olmasıydı. Kullandığım zaman: Yukarıdaki sorunları alırdım. Bununla birlikte, bir kez değiştirdikten sonra:

Çalışıyor!

+0

Cevabınızı gönderdiğiniz için teşekkür ederiz! – DhafirNz