当前位置: 首页 > 面试题库 >

命名查询未知-注释和休眠

尉迟京
2023-03-14
问题内容

我收到以下异常:

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注释来声明映射似乎更直观-但我似乎无法使其正常工作。

我在这里做错了什么?我要做什么甚至有可能吗?看来我不是唯一遇到这种情况的人,请参阅:这里。

我正在使用hibernate3.5.6-FINAL FWIW。

TIA


问题答案:

问题是我使用了错误的@Entity类。当我使用时:

org.hibernate.annotations.Entity

我会得到上面的问题。但是,一旦我切换到:

javax.persistence.Entity

有用!



 类似资料:
  • 问题内容: 我正在尝试从当前日期在任何给定月份的第一天和最后一天之间的表中提取信息。 我收到运行时错误“命名查询中的错误:Department.byDate” 我正在向您提供我认为可能导致问题的代码,如果需要任何其他代码,请在评论中告知我。 我的命名查询如下所示: 我在DAO中以一种类似于以下方式的方法使用此命名查询: 我获取月份的第一天和最后几天的方法如下: 问题答案: 在HQL / JPQL中

  • 问题内容: 有一个结构。我想以这种方式链接这三个实体:公司应包含ID,公司名称和部门列表,每个部门都有一个工人列表,ID和部门名称。每个工人都有名字,身份证。 我试图与一对多和多对一建立联系,但未成功。 公司 部门 工人 我从开始: 它填充公司,但不填充其他表,也没有创建任何联接(映射)错误: 问题答案: 除了Glenn Lane的答案中提到的级联,您还需要了解双向关联是如何工作的。 它们有一个所

  • 问题内容: 一个运行了几个月的应用程序已经停止使用已经有几个月历史的JPA 批注。在进行集成测试时,我看到许多“ ”类型错误。 我不清楚这里出了什么问题。 我没有文件,因为我正在使用hibernate实体管理器。由于我仅使用注释,因此我的实体没有.hbm.xml文件。我的文件很小,可以正常保存。 我显然丢失了一些东西,但不能动弹。 我正在使用hibernate批注3.2.1,hibernate-e

  • 我试图在elasticsearch spring数据中使用@query annotation来进行复杂的查询,但当我尝试下面的简单查询时,我得到了一个错误 堆栈跟踪

  • 我目前正在尝试向我的REST API添加一个新功能。 基本上,我想添加在路径末尾添加查询参数的功能,并将其转换为所有查询选项的映射,例如。 我当前的代码允许我做这样的事情 这将使用所有@pathparam作为字符串变量来生成响应。 我现在想做的是添加: 然后我会让它生成一个映射,可以和pathparam一起用来构建响应 我在想这样的事情[下图]然而@QueryParam似乎只处理一个键值,而不是它

  • 问题内容: 有没有一种方法可以将HQL命名查询外部化为外部文件。我有太多的命名查询,在实体类的开头使用和会很麻烦。 有没有一种方法可以将多个文件外部化? 问题答案: 您可以将查询放入域对象的根包中的类中。但是,您必须使用Hibernate自己的和批注,而不是使用。 示例文件: 然后,您必须将包添加到中。我使用Spring,所以需要设置属性: 您也可以将类型和过滤器定义放在同一文件中。