# EntityHandler
EntityHandler
はDAOインタフェースを利用したDB操作を行う際に実行するSQLの生成を制御するためのクラスです。
アプリケーションの要件によってEntityHandler (opens new window)インタフェースやDefaultEntityHandler (opens new window)クラスを継承した独自のEntityHandlerを指定することが出来ます。
TIP
EntityHandlerはDAOインタフェース利用時のみに有効な手段ですが、SQLファイルインタフェースにおいても自動でバインドする場合は、自動パラメータバインド関数の設定を参照してください。
EntityHandler
拡張例
public class CustomEntityHandler extends DefaultEntityHandler
implements EntityHandler<Object> {
@Override
public void setInsertParams(final SqlContext context, final Object entity) {
setEntityModelInsertParams((EntityModel) entity); // entityがEntityModel型を継承している場合
super.setInsertParams(context, entity);
}
@Override
public void setUpdateParams(final SqlContext context, final Object entity) {
setEntityModelUpdateParams((EntityModel) entity); // entityがEntityModel型を継承している場合
super.setUpdateParams(context, entity);
}
@Override
public void setBulkInsertParams(final SqlContext context, final Object entity, final int entityIndex) {
setEntityModelInsertParams((EntityModel) entity); // entityがEntityModel型を継承している場合
super.setBulkInsertParams(context, entity, entityIndex);
}
private void setEntityModelInsertParams(final EntityModel model) {
ZonedDateTime now = ZonedDateTime.now();
model.setCreatedAt(now);
model.setUpdatedAt(now);
}
private void setEntityModelUpdateParams(final EntityModel model) {
model.setUpdatedAt(ZonedDateTime.now());
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// create SqlConfig
SqlConfig config = UroboroSQL
.builder(...)
// EntityHandlerの設定
.setEntityHandler(new CustomEntityHandler()).build();
1
2
3
4
5
2
3
4
5