@ReferentialConstraintで参照動作の指定
[Seasar-user:16411] [S2JDBC-Gen] 外部キー生成DDLで制約オプションが反映されない の件です。
S2JDBCの次バージョンで導入されるReferentialConstraintアノテーションで対応するのはどうでしょうか。
対応するとしたらこんな感じになります。
@Entity public class Employee { … @ReferentialConstraint(onDelete=ReferentialActionType.SET_DEFAULT, onUpdate=ReferentialActionType.CASCADE) @ManyToOne public Department department; … }
onDeleteとonUpdateのデフォルトはReferentialActionType.NO_ACTIONにするつもり。
S2JDBC-Genは上記エンティティ定義に対し次のDDLを出力します。
alter table EMPLOYEE add constraint EMPLOYEE_FK1 foreign key (DEPARTMENT_ID) references DEPARTMENT (ID) on delete set default, on update cascade;
これまでどおりに使いたい場合は、@ReferentialConstraintを指定しなければいいだけなので、デメリットはないかなーと思います。