Hibernate集合设置列作为索引

时间:2013-02-14 16:18:45

标签: java hibernate collections indexing

我查看了documentation(hibernate 4.1)。我有点困惑,我希望能够在@OrderColumn(name="orders_index")中使用注释set Collection(出于设计目的)。现在,我实际上在我的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>();

/* .... */
}

1 个答案:

答案 0 :(得分:1)

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

Set<PersonnalTaskMacro> personnalTaskMacroSet ...

List<PersonnalTaskMacro> personnalTaskMacros ...

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