【问题标题】:Prevent entity from being created, but need entity for native query防止创建实体,但需要实体进行本机查询
【发布时间】:2011-10-03 14:34:43
【问题描述】:

我有一个执行存储过程并将结果映射到实体的本机查询,这可以正常工作,但问题是实体是在数据库中创建的(我指的是正在创建的实际表,但这表总是空的),有什么办法可以防止这种情况发生?

我将 JPA 与 hibernate 和 Sql Server 2005 一起使用

谢谢

【问题讨论】:

  • hibernate 只会在你告诉它的时候创建一条记录,你肯定也在做其他事情
  • 嗯,它可能是 JPA 的自动发现自动创建实体,我会尝试禁用它。
  • @NimChimpsky 我刚刚重新阅读了您的评论,您的意思是数据库行中的“记录”吗?我说的是数据库中的物理表。
  • 所以你问的是如何创建数据库中的表?
  • 不完全是如何,但会阻止其中一些被创建。 (因此它们只能用于映射本机查询的结果)JB Nizet 回答了一些我会尝试的问题

标签: sql-server hibernate jpa entity


【解决方案1】:

如果实体不应该存储在任何数据库表中,则不应使用它。查询应该返回一个对象列表,这些对象是未使用@Entity 注释的类的实例。

话虽如此,让 hibernate 为您生成数据库模式是您应该只在项目开始时为快速原型制作而做的事情。稍后,架构不应再自动创建。

【讨论】:

  • 所以我可以让休眠将结果映射到没有@Entity 的类?在这种情况下,将没有关联。我同意自动创建虽然
  • 我尝试将它映射到没有@Entity 的类,但我得到了一个未知实体异常。
  • 只查询类的字段,自己构建类的实例。
  • 采用手动方式,我将不得不加入一些表格,这将是一场噩梦。
猜你喜欢
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2019-11-09
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 2020-06-01
相关资源
最近更新 更多