[英]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.