Closed z2z2qp closed 1 year ago
目前这个建议已经不好再采纳了,否则会导致之前所有已经用 flex 的项目遭遇升级破坏。
但是,在一般的项目中,都是分成的,比如 service 层中,我们可以在自己的项目中添加通用 BaseService,用来处理类似的需求。
是的,这个具有破坏性,因此我也就询问下
可以添加另一个方法来提供此功能
default Optional<T> optionalById(Serializable id) {
return Optional.ofNullable(selectOneById(id));
}
同样的可以提供
optionalByQuery
optionalByMap
optionalByCondition
不知道作者有没有考虑在flex中提供 baseService,这些方法也可以考虑在service层进行提供
可以添加另一个方法来提供此功能
default Optional<T> optionalById(Serializable id) { return Optional.ofNullable(selectOneById(id)); }
同样的可以提供
optionalByQuery optionalByMap optionalByCondition
不知道作者有没有考虑在flex中提供 baseService,这些方法也可以考虑在service层进行提供
这个添加还是有点啰嗦了 会增加用户的学习成本,用户可以在自己的项目中,自定义个自己的 BaseMapper 比如,MyBaseMapper,这些代码可以写在 MyBaseMapper 里,然后在代码生成器里,指定 Entity 的 Mapper 继承 MyBaseMapper 就可以了。
可以添加另一个方法来提供此功能
default Optional<T> optionalById(Serializable id) { return Optional.ofNullable(selectOneById(id)); }
同样的可以提供
optionalByQuery optionalByMap optionalByCondition
不知道作者有没有考虑在flex中提供 baseService,这些方法也可以考虑在service层进行提供
mybatis本身直接支持返回Optional<T>
,如果要保留两者我更倾向与以下实现
Optional<T> selectById(Serializable id);
default T selectObjectById(Serializable id) {
return selectById(id).orElse(null);
}
目前已经内置了 service 提供了相关功能。
例如将
T selectOneById(@Param(FlexConsts.PRIMARY_VALUE) Serializable id);
改为Optional<T> selectOneById(@Param(FlexConsts.PRIMARY_VALUE) Serializable id);