我需要更新以下類的項目,儘管我可以更新所有項目,但該類的所有字段將更改爲null,並且其成員的連接將被刪除。爲什麼更新記錄的子項,刪除與子項的連接?
@Entity
public class Category implements Serializable {
@Id
@GeneratedValue
private long id;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@LazyCollection(LazyCollectionOption.FALSE)
private List<Items> items;
private float price;
@ManyToOne
private Staff user;
@ManyToOne
private Staff owner;
@Temporal(javax.persistence.TemporalType.DATE)
private Date createDate;
....
@Entity
public class Items {
@Id
@GeneratedValue
private Long id;
private int serial;
@OneToOne
private Product product;
.....
休眠
Category cat = (Category) session.get(Category.class, id);
for (int i = 0; i < cat.getItems().size(); i++) {
cat.getItems().get(i).getProduct().setQuantity(10);
Part part = new Part();
part.setName("Temp");
cat.getItems().get(i).getProduct().getPart.add(part);
session.update(cat.getItems().get(i).getProduct());
session.save(part);
}
tx.commit();
例
更新
之前Category
1 2000 Alex Jack 05-05-2014
category_categoryitem
1 137
categoryitem
137 900 20
後更新
category
1 0 Null Null Null
category_categoryitem
categoryitem
137 900 20
發佈產品信息和零部件源代碼 – WeMakeSoftware
請介紹變量產品,而不是3 x cat.getItems()。get(i).getProduct()。它會更容易閱讀。 –