簡體   English   中英

Hibernate ManyToMany在更新時出現連接表問題

[英]Hibernate ManyToMany with Join table problems on update

我正在努力使ManyToMany協會適用於所有CRUD操作。 我有兩個實體: PlacesEvents

地方可以舉辦多個活動,活動可以在多個地方舉行。

在第一種情況下,我有

在PlaceDto課程中

@ManyToOne(  
    targetEntity=EventDto.class,  
    cascade = { CascadeType.PERSIST, CascadeType.MERGE })  
@JoinTable(  
    name = "EVENTS_PLACES",  
    joinColumns = { @JoinColumn(name = "PLACE_ID") },  
    inverseJoinColumns = { @JoinColumn(name = "EVENT_ID") })  
private List<EventDto> events;

在PlaceDto類中:

@JoinTable(name = "EVENTS_PLACES", joinColumns = @JoinColumn(name = "EVENT_ID"), inverseJoinColumns = @JoinColumn(name = "PLACE_ID"))
private List<PlaceDto> places;

在這種情況下,在更新地點時,地點與其事件之間的鏈接被刪除
使用DELETE FROM EVENTS_PLACES where ...語句

第二種情況
所以在閱讀了一些文檔后,我將PlaceDto更改為

@ManyToMany (
   mappedBy = "events",  
   cascade = { CascadeType.PERSIST, CascadeType.MERGE },  
   fetch = FetchType.LAZY,  
   targetEntity = FundDto.class)  
private List<PlaceDto> places;

當更新一個地方時,一切似乎都很好,但是當我嘗試創建一個事件時,它也會嘗試創建一個地方
=>這會導致主鍵違規。

我使用eclipse覆蓋了hashcode()和equals()。

謝謝你的幫助。

請不要猶豫,向我指出一個頁面,其中顯示和解釋了完全工作和測試的ManyToMany關系。

克里斯托弗

這是一個很好的例子

只是嘗試將他們擁有的內容復制到您自己的代碼中,它應該可以工作。 如果它仍然沒有,請發布兩個類的完整列表和導致錯誤的代碼,也許我可以看到問題是什么。

暫無
暫無

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

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