我目前正在使用 Eclipselink,但我知道现在大多数 JPA 实现已经非常标准化。是否有将 JPA 实体映射到 View 的本地方法?我不打算插入/更新,但问题实际上是如何处理 @Id 注释。 JPA 世界中的每个实体都必须有一个 ID 字段,但是我创建的许多 View 并不符合这一点。 JPA 中是否有对此的 native 支持,或者我是否需要使用 hack 来使其工作?我进行了很多搜索,但发现关于这样做的信息很少。
最佳答案
虽然将 @Id
注释与直接支持的类型的字段一起使用并不是指定实体身份的唯一方法(请参阅具有多个 @Id 的
注释或 @IdClass
@EmbeddedId
和 @Embedded
),JPA 规范要求每个实体都有一个主键。
也就是说,您不需要实体即可将 JPA 与数据库 View 一起使用。由于从 SQL 角度映射到 View 与映射到表没有什么不同,您仍然可以使用 native 查询(EntityManager
上的createNativeQuery
)来检索标量值。
关于java - JPA 是否支持映射到 sql View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/644577/