繁体   English   中英

jpa2休眠使用现有实体从视图加载数据

[英]jpa2 hibernate use existing entity to load data from view

在我的JPA2 / Hibernate应用程序中,我有表USERS和匹配的实体User + DAO。

现在,我创建了视图V_USERS,其中包含来自表USERS的过滤数据。

我可以重用实体用户从该视图中查询数据吗?

不,你不能。 您可以将两个不同的类映射到同一张表中,但不能相反。

此限制的原因很简单,JPA提供程序将如何在以下查询中知道您要记住哪个表:

em.createQuery("SELECT u FROM User u");

但是,您可能想要创建具有所有属性的基类AbstractUser ,并且必须清空子类: User ,例如VUser 后两个类将映射到不同的表/视图。 参见MappedSuperclass及其示例。

@MappedSuperclass
public abstract class AbstractUser {
    //all your columns/JPA mapping go here
}

@Entity
@Table(name="USERS")
public class User extends AbstractUser {}

@Entity
@Table(name="V_USERS")
public class VUser extends AbstractUser {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM