Spring data jpa 多条件查询 参数为空的问题

业务需要多表关联查询并且模糊搜索,使用mybatis可用动态sql,jpa就没那么简单了,看了大量的文章,终于找到一种可行的办法
写个简单的例子

public interface UserProjection {
	//@Value("#{target.userName}")//当别名与该getXXX名称不一致时,可以使用该注解调整
	String getUserName();
	String getRoleName();	
}

@Query(value="SELECT u.userName AS userName,r.roleName AS roleName FROM SysUser u,SysRole r WHERE u.roleId=r.roleId AND (u.userName=:#{#n.userName} or :#{#n.userName} is null)")
	List<UserProjection> find(@Param("n")SysUser user);

(u.userName=:#{#n.userName} or :#{#n.userName} is null)")

这种是在sql语句做个非空判断,如果是空,就跳过这个条件,不执行
就是这么简单,铁子们

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值