MappedBy 在管理Java Persistence API (JPA) 和Hibernate 中物件對應關係的雙向關係方面發揮著至關重要的關係作用。這是在資料庫上下文中建模和導航複雜關係的實用方法。
在您的具體示例中,航空公司擁有許多 AirlineFlight,並且許多 AirlineFlight 屬於一家航空公司、mappedBy用於避免重複資訊儲存。由於您希望AirlineFlights成為擁有的類,因此您在Airline類中指定mappedBy屬性:
<code class="java">@OneToMany(fetch=FetchType.LAZY, cascade = {CascadeType.ALL}) @JoinColumn(name="IDAIRLINE") public Set<AirlineFlight> getAirlineFlights() { return airlineFlights; }</code>
@OneToMany註解中的mappedBy參數指定AirlineFlights表中的IDAIRLINE欄位是外鍵對應回航空公司表中的主鍵。這樣,當您查詢 Airline 物件時,您也可以輕鬆取得其關聯的 AirlineFlights。
MappedBy 有幾個重要用途:
<code class="java">@ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="IDAIRLINE", nullable=false) @MapsId public Airline getAirline() { return airline; }</code>透過指定mappedBy 和@MapsId,您表明Airline 的主鍵(不是AirlineFlights中的IDAIRLINE 外鍵)用於定義關係。這將確保航空公司是擁有實體,並且可以根據需要急切或延遲地獲取。
以上是JPA 和 Hibernate 中的「MappedBy」如何協助管理雙向關係並提高資料庫模式的簡單性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!