我对使用jooq非常陌生,我正在尝试实现我们Java人员喜欢在DAOs/存储库中使用的常见CRUD操作。我有以下代码,用于通过id选择记录:
public class JooqRepository<ID, E extends BaseObject<ID>, T extends Table<R>, R extends Record> {
...
private final T table; // would be coming from constructor to concrete reference in the generated classes
...
protected Optional<E> findById(ID id) {
final TableField<R, ID> idField = (TableField<R, ID>) table.getIdentity().getField();
return dsl.fetchOptional(table, idField.eq(id)).map(toEntity()); // conversion method omitted here
}
...
}
我的问题是,首先,这种方法是否适用于所有类型的表/记录,或者只适用于使用标识/自动增量的表/记录?
如果我使用的DBMS没有此功能(例如Oracle),该怎么办?
如果一个表有一个组合键怎么办?
最后:是否建议以这种方式使用jooq,或者我们是否应该显式地为每个表创建专用查询?
发布于 2019-10-11 06:49:14
虽然可以使用jOOQ作为Spring仓库实现,但您也可以只使用jOOQ的开箱即用的DAO
support,它的工作方式与此类似。主要不同之处在于DDD是不固执的辅助工具,它们不会强制jOOQ作为建模范例,它们只是简化了每个表上最常见的CRUD操作。
您可以将生成的DAO子类化,以便添加更多功能,并将它们注入到您的服务中,如Spring的存储库。
https://stackoverflow.com/questions/58321865
复制相似问题