簡體   English   中英

沒有雙向實體的休眠關系問題

[英]Hibernate relationship issues on no bidirectional entities

嗨,我有一個實體

OfferItem與這兩個關系manyToOne

     @ManyToOne
@JoinColumn(name = "offer_id", nullable = false, insertable = false, updatable = false)
@XmlTransient
@Getter
@Setter
private Offer offer;

@ManyToOne
@JoinColumn(name = "item_id", nullable = false, insertable = false, updatable = false)
@XmlTransient
@Getter
@Setter
private Item item;

並在數據庫上配置外鍵

             <addForeignKeyConstraint baseTableName="offer_item"
                             baseColumnNames="item_id"
                             constraintName="item_offer_item_fk"
                             referencedTableName="item"
                             onDelete="CASCADE" onUpdate="CASCADE"
                             referencedColumnNames="id"/>

    <addForeignKeyConstraint baseTableName="offer_item"
                             baseColumnNames="offer_id"
                             constraintName="offers_offer_item_fk"
                             onDelete="CASCADE" onUpdate="CASCADE"
                             referencedColumnNames="id"
                             referencedTableName="offer"/>

與要約的關系是雙向的,所以在要約實體上,我與OfferItem有這種關系

          @OneToMany(orphanRemoval = true, cascade = {CascadeType.ALL})
@JoinColumn(name = "offer_id", nullable = false)
@XmlElementWrapper
@Getter
private List<OfferItem> offerItems = new ArrayList<>();

在項目上,我沒有投標關系,因為沒有必要。

現在的問題是,當我在OfferItem上創建商品集時,我將offerItem添加到商品的OfferItems列表上,然后保存商品。 我可以看到offerItem id是如何生成的,因為它在級聯上保持不變。 但是offerItem和item之間的鏈接丟失了。

我只是嘗試在OfferItem上設置項目,並使用他自己的服務保存實體,但是什么也沒有。 我無法在他們之間保持這種聯系。

任何想法或建議。

問候。

從連接列中刪除insertable = false, updatable = false 另外, offerItems的映射是錯誤的。 它應該是

@OneToMany(orphanRemoval = true, cascade = {CascadeType.ALL}, mappedBy = "offer")
@XmlElementWrapper
@Getter
private List<OfferItem> offerItems = new ArrayList<>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM