これを続けて、別のエンティティを作成し、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.
}
マップ キーをソートし、すべてのジャッジへの参照を 1 回だけ (@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...
これは可能ですか?