3

ご覧のとおり、2 つのテーブル (オファー、アイテム) があり、アイテムの挿入に問題があります。オファーを追加するたびに、アイテムのリストが挿入されません。オファーにはアイテムのリストが保持されます。これが私のコードです:

オファー:

@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

オファーは正常に追加されましたが、アイテムは追加されませんでした。マッピングの問題ですか?

4

2 に答える 2

4

OneToMany側にカスケードオプションを配置してみましたか?

于 2013-01-18T17:26:53.937 に答える
0

オファー

 @OneToMany(cascade = { CascadeType.ALL }, orphanRemoval = true, mappedBy = "offer")
private List<Item> items;

アイテム:

@ManyToOne
@JoinColumn(name="idOffer")
private Offer offer;
于 2013-01-18T17:33:21.627 に答える