1
正如你可以看到我有两个表(提供,项目) 我有一个插入项目的问题,每次我添加提供它不插入项目列表。优惠包含物品清单。 这里是我的代码:休眠一对多插入
提供:
@Entity
public class Offer{
@Id
@GeneratedValue
int id;
private String name;
private String description;
@OneToMany(mappedBy="offer")
private List<Item> items;
//getters and setters
项:
@Entity
public class Item{
@Id
@GeneratedValue
int idItem;
private String name;
private double price;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="idOffer")
private Offer offer;
// getters and setters
,这里是代码填充表:成功添加
Offer offer=GenerateData.generateOffer();
List<Item> items=new ArrayList<>();
for(int i=0;i<3;i++){
Item item=GenerateData.generateItem();
items.add(item);
item.setOffer(offer);
}
offer.setItems(items);
pDB.addOffer(offer);//DAO for adding Offers into DB
发售,但项目不是。映射有问题吗?
是我加入,它的工作。双方都可以级联吗? –
级联选项定义通过可达性进行保存/删除,因此,如果您曾保存过某个项目,并希望其更新也可以在那里进行级联。但是,如果商品对象已经是托管bean,则情况不会如此。 – Farzad
如果没有设置(item.setOffer(offer);),IdOffer不会为null吗? –