继续this我决定采取一种方法来建立一个不同的实体并建立一个OneToOne关系(我希望这没关系)。请让我解释一下我在做什么:
我有一个具有以下相关领域的Juez(法官)实体:
@Entity
@Table(name = "jueces")
public class Juez implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "id")
private Integer id;
@Version
@Column(name = "opt_lock")
private Integer version;
@Basic
@Column(name = "nombres")
private String nombres;
// Getters, setters, other properties, etc.
}
我想要另一个名为RolDeJueces(判断卷)的实体来保存java.util.Map<Integer, Juez>
,其中我想要对键进行排序(1,2,3 ...)并映射到一个判断所以我可以拥有一卷进行一些计算。这是我到现在为止所拥有的:
@Entity
@Table(name = "rol_jueces")
public class RolDeJueces {
@Id
private Integer id;
@Version
@Column(name = "opt_lock")
Integer version;
@OneToMany //Is this ok?
@MapKeyColumn(name = "orden_juez", updatable = true)
private Map<Integer, Juez> rol;
// Getters, setters, other properties, etc.
}
如何对地图键进行排序并保留对所有评委的引用,但只有一次(la @OneToOne)?
此外,我必须能够对我的评委进行重新排序,并使更改持续存在,例如。
rolDeJueces.getRol().clear(); // Delete current order
int order = 0;
// Add judges according to new order to the roll
for(Juez juez : getNewOrder()){
RolDeJueces.getRol().put(++order, juez);
}
// save my new roll and stuff...
这可能吗?
答案 0 :(得分:0)
好的,我认为我不需要插入订单的地图,也不需要我想要的东西。
这是impl:
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Integer id;
@Version
@Column(name = "opt_lock")
private Integer version;
@OneToMany(orphanRemoval = false)
@OrderColumn(name = "order_jueces")
private List<Juez> rol;
@OrderColumn将在用于关系的表中生成一个额外的列。