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内容。你可以这样写你的行程.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" />
其中,机场、航空公司和行程是DB中的表格。希望这能帮助。。。
注意——这只是一个例子。您可能需要相应地更新您的bean。