在物件關係映射(ORM) 中,實體之間的雙向關係需要仔細處理,以避免無限循環或不一致的數據狀態。 MappedBy 是 JPA 和 Hibernate 註解中的屬性,可以解決這個問題。
理解 MappedBy 的作用:
MappedBy 指定哪個實體擁有關係並擁有外鍵資料庫中的欄位。它應用於非擁有實體的映射註釋,表示關係是透過擁有實體的表中的外鍵來映射的。
使用建議:
當定義雙向關係,建議遵循以下準則:
範例:
在您的 Airline 和 AirlineFlight 實體中,Airline 應是關係的擁有者。正確的註解是:
<code class="java">// Airline.java @OneToMany(mappedBy = "airline") public Set<AirlineFlight> getAirlineFlights() { return airlineFlights; } // AirlineFlight.java @ManyToOne @JoinColumn(name = "IDAIRLINE") public Airline getAirline() { return airline; }</code>
MappedBy 的用途:
MappedBy 有兩個主要用途:
以上是JPA和Hibernate中的MappedBy如何防止雙向關係中的資料不一致?的詳細內容。更多資訊請關注PHP中文網其他相關文章!