IDの自動採番

S2JDBCを参考にIDの自動採番機能もつけました。DBのauto incrementを使う場合はこんなん。

@Entity
public interface Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    IntegerDomain employee_id();
    ...
}

シーケンスを使う場合はこんなん。@SequenceGeneratorは必須(存在しない場合はaptでコンパイルエラーにしてる)。

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @SequenceGenerator(sequence = "SEQUENCE_EMPLOYEE_ID")
    IntegerDomain employee_id();

テーブルを使う場合はこんなん。@TableGeneratorは必須(存在しない場合はaptでコンパイルエラーにしてる)。

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    @TableGenerator(pkColumnValue = "EMPLOYEE_ID")
    IntegerDomain employee_id();

S2JDBCJPAにあるstrategy = GenerationType.AUTOはサポートしません。

自分で設定する場合は、@GeneratedValueをつけなければOK。@Idなしや複数の@Id(複合主キー)もサポート。