0
@Entity 公共類項目{JPA一個一對多堅持兒童及其ID
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "item")
private List<Feature> features= new ArrayList<Feature>();
兒童實體:
public class Feature{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String attribute1;
private String attribute2;
private String featureCode;
@ManyToOne
private Item item;
.....
public String getFeatureCode() {
if (item != null) {
feature = item.getId() + attribute1 + attribute2;
}
return feature;
}
你可以從我的annotaiton看到,當項目pesist,它也會堅持自己的孩子。
由於合成ID具有非常差的聲譽,我真的需要在功能中的父母的ID爲了方便查詢,我添加了一個featureCode將三列附加在一起。
我的問題是,該項目的ID是從數據庫生成的。從調試信息中,我首先猜測它是同一個項目,然後更新Feature的項目。這會導致我的featureCode的item.getId()爲空結果。
是否有可能改變一對多的級聯持久性行爲,如堅持物品第一,然後保存它的孩子?