【问题标题】:how to mapping hibernate entity to db view如何将休眠实体映射到数据库视图
【发布时间】:2016-08-17 08:02:41
【问题描述】:

您能帮我如何将任何实体映射到数据库视图吗?

场景在这里,我们使用原生 sql 在 db 上创建一个视图,我们必须这样做,并且我们希望将此视图映射到我们的实体。

我们怎样才能做到这一点?我们尝试创建一个具有相同列的实体,但它不起作用?

【问题讨论】:

  • 一个视图就像一个normal 表,所以你可以用同样的方式映射它。
  • 尝试在实体类定义中设置mutable="false"
  • 好的,非常感谢大家。我们忘记了 id 添加 id 列来查看。我们添加了 id 列视图和实体,我们设置 mutable=false 并且它可以工作。谢谢。
  • 请写下答案,发布并接受。这允许 Stack Overflow 存档问题以供将来使用。或者,其中一位评论贡献者可以撰写文章并获得荣誉。

标签: database hibernate view


【解决方案1】:

我在以下代码 sn-p 中使用的特定于 Hibernate 的 @Immutable 注释。 视图可以如下映射....

@Entity
@Immutable
public class <NAME>View {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@Version
@Column(name = "version")
private int version;

@Immutable 注解告诉 Hibernate 忽略此实体上的所有更改,但您可以使用它从数据库中检索数据。

List views = em.createQuery("SELECT v FROM View v", View.class).getResultList();

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2019-12-03
    • 2020-12-18
    • 2010-10-06
    相关资源
    最近更新 更多