Java 如何使用hibernate将这个复杂对象持久化到数据库?

Java 如何使用hibernate将这个复杂对象持久化到数据库?,java,hibernate,orm,foreign-keys,Java,Hibernate,Orm,Foreign Keys,后端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

后端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;
}

我使用这样的方法:构建一个行程对象。这就是让我困惑的地方,我不知道使用hibernate作为我的ORM处理这个问题的好方法是什么


我正在尝试将出发和到达机场(对象)添加到我的行程中。这些对象依次在数据库中保持为:

机场:

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

<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" />