您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

每个子类的继承关系表:如何在不加载任何子类的情况下针对父类进行查询?(hibernate)

每个子类的继承关系表:如何在不加载任何子类的情况下针对父类进行查询?(hibernate)

解决方法如下所述:

将您的Parent类定义MappedSuperClass 。假设父类映射到PARENT_TABLE

@MappedSuperClass
public abstract class AbstractParent implements Serializable {

    @Id
    @GeneratedValue
    private long id;

    @Column(table="PARENT_TABLE")        
    private String someProperty;

    // getter's and setter's

}

对于每个子类,扩展AbstractParent该类并定义其 SecondaryTable父类中定义的任何持久字段都将映射到_SecondaryTable_ 定义的表。最后,如果需要,请使用AttributeOverrides

@Entity
@SecondaryTable("PARENT_TABLE")
public class Child extends AbstractParent {

    private String childField;

    public String getChildproperty() {
        return childField;
    }

}

并定义另一个实体,以仅检索父类

@Entity
@Table(name="PARENT_TABLE")
@AttributeOverrides({
    @AttributeOverride(name="someProperty", column=@Column(name="someProperty"))
})
public class Parent extends AbstractParent {}

没有其他的。如上所示,我仅使用了JPA特定的批注

其他 2022/1/1 18:18:09 有504人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶