2012-12-03 138 views
0

如何映射地图?映射JPA地图,休眠键

我有这样的:

private Map<Integer, Trip> trips = new HashMap<Integer, Trip>(); 

由于映射键我想这次旅行ID ..

跳闸实体持有引用到我的实体。 (该列在另一个表中)。 这次旅行有一列给我参考ID。

我该怎么做?

喜欢的东西

@MapKeyTable(name="trips") 
@MapKeyColumn(name="trip_id") 
@OneToMany(joinTable......) 
private Map<Integer, Trip> trips = new HashMap<Integer, Trip>(); 

回答

1

如果行程ID是Trip属性(比如tripId),那么你需要以下条件:

@MapKey(name = "tripId") 
@OneToMany(...) 
private Map<Integer, Trip> trips = new HashMap<Integer, Trip>(); 

其他注解是一种更复杂的情况。

+0

我发现了一个类似的事情。谢谢 – Alex

1

事情是这样的:

@OneToMany(cascade = CascadeType.PERSIST) 
@JoinTable(name = "jointableName", joinColumns = @JoinColumn(name = "this_id"), inverseJoinColumns = @JoinColumn(name = "trip_id")) 
private Map<Integer, Trip> trips= new Hashtable<Integer, Trip>();