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();
S2JDBCやJPAにあるstrategy = GenerationType.AUTOはサポートしません。
自分で設定する場合は、@GeneratedValueをつけなければOK。@Idなしや複数の@Id(複合主キー)もサポート。