使用 JPA 时如何在没有主键的情况下映射数据库视图
- 我在 SQL 数据库中有视图,但没有明显的主键(复合或其他)
- 我想通过 JPA 访问它们
我已经读到,我应该能够像处理表一样处理JPA中的视图(使用@Table注释等)。但是,如果没有主键,我必须有效地从每个列中制作一个复合键(实际上,这是Hibernate的逆向工程工具默认执行的操作)。
但是,如果我这样做,就会有不良的副作用。例如:
-
必须编写指向主键属性而不是视图的所有代码:
myViewObject.getPrimaryKey().getFirstName()
无法使用“查找来...”方法(因为该属性是视图“标识符”的一部分,而不是它的属性之一)。
我的问题是:如何使用JPA轻松访问其属性,因此如何在这样的环境中映射视图?
注意:我很高兴被告知我使用了完全错误的方法。这似乎是一个常见的问题,必然会有更好的解决方案。