所以我有一个属性类
public class Property {
@Id
@Column(name="PROPERTY_ID")
private Long propertyId;
@Column(name="NAME")
private String name;
@Column(name="TYPE_CODE")
private Integer typeCode;
...getters and setters...
}
我想用它来获取有关拉动我数据库中所有属性的请求的有限信息。
但我也想要一个利用数据库约束来建立关系的类
public class ExportProperty extends Property {
@ManyToOne
@JoinColumn(name="TYPE_CODE")
private ExportPropertyType type;
@OneToMany(mappedBy="property", fetch=FetchType.EAGER)
private Set<ExportPropertyPhoneNumber> phoneNumbers;
...getters and setters...
}
我可以用来获取单个属性的所有数据。
这可能吗?或者我是否需要重新考虑我的策略?
答案 0 :(得分:0)
感谢Guillaume F.我能够找到解决方案。
我有一个包含任何公共字段的常见超类型
@MappedSuperclass
public class PropertySuper {
@Id
@Column(name="PROPERTY_ID")
private Long propertyId;
@Column(name="NAME")
private String name;
...getters and setters...
}
只包含属性表
中的数据的类@Entity
@Table(name = "PROPERTY")
public class Property extends PropertySuper {
@Column(name="TYPE_CODE")
private Integer typeCode;
...getters and setters...
}
以及包含所有JPA链接的类
@Entity
@Table(name = "PROPERTY")
public class FullProperty extends PropertySuper {
@ManyToOne
@JoinColumn(name="TYPE_CODE")
private FullPropertyType type;
@OneToMany(mappedBy="property", fetch=FetchType.EAGER)
private Set<FullPropertyPhoneNumber> phoneNumbers;
...getters and setters...
}