gpt4 book ai didi

java - Hibernate 中的 SortedMap 键持久化

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:32 25 4
gpt4 key购买 nike

我希望有人能帮助我解决我的 hibernate 问题,因为我已经用我的头撞了谷歌大约一个小时而没有结果。

所以问题是我在一个类中有一个 SortedMap,使用 Integer 作为键(及其自然内置的 compareTo 方法)和另一个类作为值类型。我正在使用键来保持值类型的用户定义顺序,并试图让 Hibernate 保持它。

无论出于何种原因,Hibernate 默认忽略我输入的键,而是使用值类型的主键作为键。当我从数据库中加载我的地​​图时,我所有的键都以这种方式更改。

Map 的定义如下所示(我使用的是注解式 Hibernate);

@ManyToMany(cascade = CascadeType.ALL)
@MapKey
@Sort(type = SortType.NATURAL)
private SortedMap<Integer, Column> columnOrder;

我不能使用 Column 类型来存储订单本身,因为 Column 可能在包含类型的许多实例中使用,每次都有不同的键值。任何指导将不胜感激。

最佳答案

所以我在发现这个具有类似问题的 StackOverflow 问题后找到了答案:Sorted map of Java primitives using JPA2 and Hibernate?

通过将 @MapKey 注释更改为 @MapKeyColumn 注释,我能够向 Hibernate 发出指令,将键保留在我指定的列名中,如下所示;

@ManyToMany(cascade = CascadeType.ALL)
@MapKeyColumn(name = "hierarchyOrdering")
@Sort(type = SortType.NATURAL)
private SortedMap<Integer, Column> columnOrder;

感谢您的帮助。

关于java - Hibernate 中的 SortedMap 键持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820477/

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