【问题标题】:Hibernate collection set column as indexHibernate 集合集列作为索引
【发布时间】:2013-02-14 16:18:45
【问题描述】:

我查看了 documentation (hibernate 4.1) 。而且我有点困惑,我希望能够在我的set Collection 中使用注释@OrderColumn(name="orders_index")(出于设计目的)。现在,我实际上是在我的PersonnalTaskMacro 中手动添加了一个 orders_index,但它在 * 中变得很痛苦(我需要重构它......)。我遇到了@MapKeyColumn(name="orders_number"),但这并不是我真正想要的。我怎样才能做到这一点?

@Entity
@Table(name = "PERS_TASK_MACRO_PARAMETER")
public class PersonnalTaskMacroParameter extends Parameter {

    /* .... */

    @OneToMany(cascade = { CascadeType.ALL } , fetch = FetchType.LAZY)
    @JoinTable(name = "PERS_TASK_MACRO_JOIN", 
    joinColumns = { @JoinColumn(name = "MODULE_PARAMETER_ID") }, 
    inverseJoinColumns = { @JoinColumn(name = "PERS_TASK_MACRO_ID") })
    @ForeignKey(name="FK_PERS_TASK_MACRO_PARAM_ID", inverseName="FK_PERS_TASK_MACRO_ID")
    private Set<PersonnalTaskMacro> personnalTaskMacroSet = new HashSet<PersonnalTaskMacro>();

/* .... */
}

【问题讨论】:

    标签: java hibernate collections indexing


    【解决方案1】:

    Set 不是有序集合。 documentation you cited 指向正确的方向:改变

    Set<PersonnalTaskMacro> personnalTaskMacroSet ...
    

    List<PersonnalTaskMacro> personnalTaskMacros ...
    

    您也可以使用 SortedSets 来执行 something similar,但这取决于排序键是您拥有的集合的实体的一部分。

    【讨论】:

    • 乐于助人。如果你准备好了,你应该接受答案,使用绿色复选标记。
    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    相关资源
    最近更新 更多