Именованный запрос неизвестен - Аннотации и Hibernate - PullRequest
8 голосов
/ 27 октября 2010

Я получаю следующее исключение:

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 для объявления отображений - но я могу 'Кажется, чтобы заставить его работать.

Что я здесь не так делаю?Возможно ли то, что я пытаюсь сделать?Кажется, я не единственный, кто сталкивался с этим, см .: здесь .

Я использую hibernate 3.5.6-FINAL FWIW.

TIA

1 Ответ

5 голосов
/ 03 ноября 2010

Проблема заключалась в том, что я использовал неправильный класс @Entity. Когда я использовал:

org.hibernate.annotations.Entity

Я бы получил проблемы выше. Однако однажды я переключился на:

javax.persistence.Entity

Работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...