簡體   English   中英

如何使用hibernate將這個復雜的對象持久化到數據庫?

[英]how can I persist this complex object to database using hibernate?

后端的mysql中有數據庫表,對應於這些類,並相應地定義了外鍵。 如果我需要將這些關系放在這里,請告訴我。

class Itinerary {
 Airport Departure;
 Airport Arrival;
 Airline flight;
}

class Airport{
 int idAirport;
 String terminal;
 City city;
}

class City{
 int idCity;
 String name;
}    

class Airline{
 int idAirline;
 String flightNumber;
}

我用這樣的東西: http//pastebin.com/YzYMTBg3來建立一個行程對象。 這讓我感到困惑,我不知道使用hibernate作為我的ORM處理這個問題的好方法。


AirSegmentBuilder segmentBuilder = new AirSegmentBuilder();
segmentBuilder.addDepartureAirport("JFK");
segmentBuilder.addArrivalAirport("SFO");

我想在這里為我的行程添加出發和到達機場(物體)。 這些對象反過來在數據庫中持久化為:

飛機場:

id    |    name    | terminal
1     |    JFK     |  1
2     |    SFO     |  B1

因此,當我需要將這些機場添加到我的行程中時,是否需要首先使用基於名稱的查詢來獲取機場對象? 然后將這些物體附加到行程中? 一旦我構建了行程對象並使用hibernate將其保存到數據庫中,它是否能夠正確地獲取外鍵?

假設您正在使用xml來配置您的hibernate內容。 你可以這樣編寫你的Itinerary.hbm.xml來實現你的目標:

<many-to-one name="Airport" class="pkg.Airport"
                column="foregn_key1" not-null="true" fetch="join" />
<many-to-one name="Airline" class="pkg.Airline"
                column="foregn_key2" not-null="true" fetch="join" />

機場,航空公司和行程是您數據庫中的表格。 希望這可以幫助...

注意 - 這只是一個例子。 您可能需要相應地更新您的bean。

暫無
暫無

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

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