[英]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.