Hibernate - 具有额外列的N< - > N表的XML映射

时间:2011-08-24 17:13:07

标签: java hibernate hibernate-mapping pojo

我有这个架构:

---------------  --------------------  ----------------
| Customers   |  | CustomRoutePrice |  | Route        |
|-------------|  |------------------|  ---------------|
| CustId (pk) |  | CustId  (pk)     |  | RouteId (pk) |
| Desc        |  | RouteId (pk)     |  | Desc         |
---------------  | Price            |  | Price        |
                 --------------------  ----------------

我希望将CustomRoutePrice的价格映射到我Customer的POJO,如下所示:

Map<Route, Double> customRoutesPrices;

或者可能有一个名为CustomRoute的新POJO,所以看起来像这样:

public class CustomRoute {
    private Customer customer;
    private Route route;
    private Double price;
}

所以在我Customer的POJO中我可以有一套像:

Set<CustomRoute> customRoutes;

可能是CustomRoute的{​​{1}} s集合。

所以我的问题是如何才能使这两种映射成为可能?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

这是多对多映射的经典示例,其中关联表除了多方的PK之外还有额外的列。 Here显示了此类映射的完整示例

答案 1 :(得分:0)

您可以声明地图&lt; Route,Double&gt;:

<map name="customRoutesPrices" table="CustomRoutePrice">
  <key column="CustId" not-null="true"/>
  <map-key-many-to-many class="Route" column="RouteId"/>
  <element column="Price" type="double"/>
</map>