gpt4 book ai didi

java - Hibernate HashMap 映射

转载 作者:行者123 更新时间:2023-12-01 14:37:47 25 4
gpt4 key购买 nike

我是 hibernate 新手,我需要将现有的类结构映射到数据库。现在我有一个 Player、Arsenal 和 Weapon 类。每个玩家都有自己的(一个)阿森纳 - 没问题。在Arsenal中有一个HashMap,其中包含武器ID和该武器的数量。例如(ID=10是霰弹枪,amo还剩7发)。为了使它更复杂,我有更多带有不同风格武器的 map :

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

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

如何使用注释在 hibernate 4 中映射类似的内容?

其次:是不是有一张 table 阿森纳更好:

arsenalID | weaponID | amount

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

arsenalID | explosiveWeaponID | rifleWeaponID | ...

然后为每个武器键入一个带有 id/数量的表?

我不想对类/代码进行太多/根本的更改,但如果有更好的方法来存档它,我很感激您的建议。

最佳答案

看起来您的 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
}

有一个关于多对多的很好的描述 here有很好的例子。

关于java - Hibernate HashMap 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16318807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com