使用JPA时如何映射没有主键的数据库视图

时间:2015-07-08 12:01:14

标签: java spring hibernate jpa sql-view

  • 我在SQL数据库中有视图,没有明显的主键(复合或其他)
  • 我想通过JPA
  • 访问它们

我已经读过,我应该能够像处理表格一样处理JPA中的视图(使用@Table注释等)。但是,如果没有主键,我必须从每个列中有效地创建一个复合键(事实上,这是Hibernate的逆向工程工具在默认情况下所做的)。

但是如果我这样做会产生不良副作用。 E.g。

  • 必须编写指向主键属性的所有代码而不是视图:

    myViewObject.getPrimaryKey()。的getFirstName()

  • 无法使用" findBy ..." spring存储库中的方法(因为该属性是视图的一部分"标识符"实际上并不是它的一个属性)。

我的问题是:如何在这样的地方映射视图,因为我可以使用JPA轻松访问其属性?

注意:我很高兴被告知我使用完全错误的方法。这似乎是一个常见的问题,必然会有更好的解决方案。

1 个答案:

答案 0 :(得分:10)

您可以向视图的每一行添加一个UUID列,然后您可以use the UUID column as an @Id