fluent-mybatis构建query查询条件如果数据属性x = 1则id在一个集合里面如果x = 0则无此限制
您可以使用Fluent-Mybatis来构建查询条件。在该库中,您可以使用Where类来构建条件表达式。
根据您的要求,您可以使用以下代码来构建查询条件:
import org.apache.ibatis.session.SqlSession;
import org.mybatis.dynamic.sql.SqlBuilder;
import org.mybatis.dynamic.sql.select.SelectDSLCompleter;
import static org.mybatis.dynamic.sql.SqlBuilder.*;
import static org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils.selectDistinct;
public List<YourEntity> queryEntities(int x, List<Integer> ids) {
SqlSession sqlSession = ... // 获取SqlSession对象
return selectDistinct(YourEntityMapper.selectList)
.from(YourEntityDynamicSqlSupport.yourEntity)
.where(YourEntityDynamicSqlSupport.x, isEqualTo(x))
.andWhen(x == 1, c -> c.and(YourEntityDynamicSqlSupport.id, isIn(ids)))
.build()
.execute(sqlSession);
}
在上述代码中,我们使用selectDistinct方法来构建一个查询对象,并指定要查询的字段。然后,我们使用from方法来指定要查询的表,这里的YourEntityDynamicSqlSupport.yourEntity是您的实体类对应的动态SQL支持类。
接下来,我们使用where方法来构建查询条件。这里使用YourEntityDynamicSqlSupport.x属性与传入的x进行比较,如果相等,则添加相应的限制条件。同时,我们使用andWhen方法来判断x的值,如果x为1,则添加YourEntityDynamicSqlSupport.id属性在ids集合中的限制条件。
最后,我们使用build方法来构建查询语句,并通过execute方法执行查询操作。
请注意,以上代码仅为示例,您需要根据您的实际情况进行调整和修改
原文地址: https://www.cveoy.top/t/topic/iHfc 著作权归作者所有。请勿转载和采集!