オブジェクト リレーショナル マッピング (ORM) では、エンティティ間の双方向の関係は、無限ループや一貫性のないデータ状態を避けるために慎重に処理する必要があります。 。 MappedBy は、この問題を解決する JPA および Hibernate アノテーションの属性です。
MappedBy の役割を理解する:
MappedBy は、どのエンティティが関係を所有し、外部キーを所有しているかを指定します。データベース内の列。これは、非所有エンティティのマッピング アノテーションに適用され、関係が所有エンティティのテーブルの外部キーによってマップされていることを示します。
使用上の推奨事項:
場合双方向の関係を定義する場合は、次のガイドラインに従うことをお勧めします。
例:
Airline エンティティと AirlinesFlight エンティティでは、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 は 2 つの主な目的を果たします:
以上がJPA と Hibernate の「MappedBy」は、双方向の関係におけるデータの不整合をどのように防ぐのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。