データベースに永続化するためにエンティティとしてマップされたクラスがあります。主キーとして id フィールドがあるため、オブジェクトが永続化されるたびに、次のようなコードである "myClass_pk_seq" シーケンスから id の値が取得されます。
@Entity
@Table(name="myObjects")
public class MyClass {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequence")
@SequenceGenerator(name="sequence", sequenceName="myClass_pk_seq", allocationSize=1)
@Column(name="myClassId")
private Integer id;
private Integer code;
...
}
「コード」属性でidに似たものを作成する必要があります。シーケンスの次の値をコードに割り当てることができるように、シーケンスが必要です (ユーザーがその値を予約したいが、データを保持しない場合に備えてその値を予約するため)。何を入力すればよいかわからない場合は、ユーザーがボタンを押して画面で次の可能な値を受け取ることができます (そして、ユーザーはそれを受け入れるかどうかに関係なく) フィールドが表示されます。主キー以外のフィールドのデータを永続化せずに、JPA で定義されたシーケンスの次の値を取得する (およびその値をインクリメントする) にはどうすればよいですか?
「コード」フィールドに関連付けられたシーケンスで nextval を呼び出し、値を返すメソッドが必要です。アノテーションを使用してJPAでそれを行う最良の方法は何ですか?
ありがとう。