由于普通方法例如 eq(boolean condition, R column, Object val) ,容易让人错误理解,执行完前面的condition就不会再执行后面的 val推算了,但进入方法栈这个值是必须要求出来的.

尝试添加相关惰性求值方法: 例如 eq(boolean condition, R column, Supplier val)

当h2user对象如果为空的前提下,下面代码会抛出空指针.

userService.query().eq(h2User != null && StringUtils.isNotBlank(h2User.getName()), "name", h2User.getName().trim()).count()

目前支持的惰性操作处理解决空指针问题.

userService.query()
            .func(h2User != null && StringUtils.isNotBlank(h2User.getName()), w -> w.eq("name", h2User.getName().trim())).count())

考虑新增方法.写法示例

userService.query().eq(h2User != null && StringUtils.isNotBlank(h2User.getName()), "name", () -> h2User.getName().trim()).count();

userService.lambdaQuery().eq(h2User != null && StringUtils.isNotBlank(h2User.getName()), H2User::getName, () -> h2User.getName().trim()).count()

Comment From: qiuhuanhen

我也想到的这个方法 想提issue发现楼主已经提过了 不太美观但是方法意思不会有歧义 1716191877485

Comment From: code142857

这个issue被关闭了,我看目前也没这个功能,是不会考虑加这个功能吗?

.