存在兩張表,它們是多對一的關係
@Entity
@Table(name = "goods", schema = "weitao")
public class Goods {
private int id;
private String name;
private Double price;
private Integer number;
private String description;
private TinyCategory categoryId;
}
@Entity
@Table(name = "shopping_entry", schema = "weitao")
public class ShoppingEntry {
private int id;
private int number;
private Goods goods;
@ManyToOne(targetEntity = Goods.class)
@JoinColumn(name = "goods_id", referencedColumnName = "id")
public Goods getGoods() {
return goods;
}
public void setGoods(Goods goods) {
this.goods = goods;
}
}
Goods表中有各類商品,想要插入ShoppingEntry的同時使外鍵生效,但是session.save(entry)存儲時不能直接對外間進行賦值
解決方法:
Goods goods = (Goods) session.load(Goods.class, Integer.valueOf(newEntry.get("goodsId").toString()));
ShoppingEntry entry = new ShoppingEntry();
entry.setNumber(Integer.valueOf(newEntry.get("number").toString()));
entry.setGoods(goods);
session.save(entry);