JPA是否支持映射到sql视图?

GBa*_*GBa 33 java sql orm jpa view

我目前正在使用Eclipselink,但我知道现在大多数JPA实现已经非常标准化了.是否有将JPA实体映射到视图的本机方法?我不打算插入/更新,但问题是如何处理@Id注释.JPA世界中的每个实体都必须有一个ID字段,但我创建的许多视图都不符合这一点.在JPA中是否存在本机支持,或者我是否需要使用hack才能使其工作?我搜索了很多,发现很少有关于这样做的信息.

Nil*_*oka 9

虽然使用@Id带有直接支持类型字段的注释并不是指定实体标识的唯一方法(请参阅@IdClass多个@Id注释或@EmbeddedId使用@Embedded),但JPA规范要求每个实体都有一个主键.

也就是说,您不需要实体将JPA与数据库视图一起使用.由于映射到视图与从SQL透视图映射到表没有什么不同,您仍然可以使用本机查询(createNativeQueryon EntityManager)来检索标量值.