オプションの指定

S2Daoだとタイムアウトなどのオプションをクエリごとに指定したりできない(diconで一律設定はできます)んですが、DomaではDaoのメソッドでオプションを渡せるようにしてみました。

@Dao(config = MyConfig.class)
public interface EmployeeDao {
    @Delete
    int delete(Employee entity, DeleteOptions options);
    ...
}

使うときはこんなん。複数のオプションを宣言的に指定できます。。

DeleteOptions options = DeleteOptions.get().ignoresVersion().queryTimeout(10);
int result = dao.delete(employee, options);

S2Daoではメソッドのオーバーロードは禁止されていますが、Domaでは認めているので、こんな風にオプションありとなしのメソッド両方を用意できます。

@Dao(config = MyConfig.class)
public interface EmployeeDao {
    @Delete
    int delete(Employee entity);
 
    @Delete
    int delete(Employee entity, DeleteOptions options);
    ...
}