0

我是休眠新手,我需要将现有的类结构映射到数据库。现在我有一个球员,阿森纳和武器类。每个球员都有自己的(一个)阿森纳——没问题。在兵工厂中有一个 HashMap,其中包含一个武器 ID 和该武器的数量。比如(ID=10是霰弹枪,还剩7发amo)。为了让它更复杂,我有更多带有不同风格武器的地图:

@Entity
class Arsenal
{
   @Id
   @GeneratedValue
   int arsenalID;

   //weaponID - how many
   HashMap<Integer, Integer> explosiveWeapons;
   HashMap<Integer, Integer> rifleWeapons;
   HashMap<Integer, Integer> someOtherTypeOfWeapons;
}

我将如何在 hibernate 4 中使用注释映射类似的东西?

其次:有一张桌子会更好吗 阿森纳:

arsenalID | weaponID | amount

或者更好的是更多这样的表:

arsenalID | explosiveWeaponID | rifleWeaponID | ...

然后对于每个武器类型一个带有 id/数量的表?

我不希望将类/代码更改为太多/根本,但如果有更好的方法来归档它,我很感激建议。

4

1 回答 1

1

看起来您的 Hashmap 包含最好使用 Hibernate 注释 @ManyToMany 映射为 @JoinTable 的条目。

基本上,您想要的是这样的表格:

CREATE TABLE arsenal_entry {
    ... --Id here, or you could use a synthetic key, but if you're new to hibernate I wouldn't recommend that.
    player_id integer references player,
    weapon_id integer references weapon, --If weapons aren't defined in an enum, otherwise this should be a varchar / text
    count integer
}

这里有一个很好的多对多描述和很好的例子。

于 2013-05-01T18:32:25.073 回答