我目前正在使用Eclipselink,但我知道现在大多数JPA实现已经非常标准化了.是否有将JPA实体映射到视图的本机方法?我不打算插入/更新,但问题是如何处理@Id注释.JPA世界中的每个实体都必须有一个ID字段,但我创建的许多视图都不符合这一点.在JPA中是否存在本机支持,或者我是否需要使用hack才能使其工作?我搜索了很多,发现很少有关于这样做的信息.
虽然使用@Id
带有直接支持类型字段的注释并不是指定实体标识的唯一方法(请参阅@IdClass
多个@Id
注释或@EmbeddedId
使用@Embedded
),但JPA规范要求每个实体都有一个主键.
也就是说,您不需要实体将JPA与数据库视图一起使用.由于映射到视图与从SQL透视图映射到表没有什么不同,您仍然可以使用本机查询(createNativeQuery
on EntityManager
)来检索标量值.