MyBatis-Plus初体验--痛并快乐

感觉还行,确实能省不少时间。就是有点丑,有待进一步美化。对于一个抵触Lambda的码农来说,看在能省时间的份上,就捏着鼻子先用着吧。哈哈。
附上2个具体场景:

1:多对多关连查询最终解决方案:

#用于查询用户时,设置部门id条件的sql片段
user.department.userInDept=id in (select user_id from sys_user_department where dept_id={0})
#用于查询用户时,设置岗位id条件的sql片段
user.position.userInPosition=id in (select user_id from sys_user_position where position_id={0})

//读属性

@Component
@PropertySource("mapper/apply-where.properties")
public class SqlSegmentProperties {

	public static String userInDept;

	public static String userInPosition;

	@Value("${user.department.userInDept}")
	public void setUserIdIn(String userIdIn) {
		SqlSegmentProperties.userInDept = userIdIn;
	}

	@Value("${user.position.userInPosition}")
	public void setUserInPosition(String userInPosition) {
		SqlSegmentProperties.userInPosition = userInPosition;
	}
}

查询时用query.apply设置多对多条件

	public Wrapper<User> buildQuery() {
		QueryWrapper<User> query = Wrappers.<User>query();
		query.setEntity(this);
		// 根据机构查询
		query.apply(null != departmentId, userInDept, departmentId);
		// 根据岗位查询
		query.apply(null != positionId, userInPosition, positionId);
		// 排序
		query.orderByDesc("gmt_create");
		return query;
	}

//对Wrapper这玩意有强烈的抵制心理,代码太丑了有木有。还是尽可能抽抽吧- ,-

	/** 用户 **/
	static LambdaQueryWrapper<User> userQuery() {
		return Wrappers.<User>lambdaQuery();
	}

	/** 部门 **/
	static LambdaQueryWrapper<Department> departmentQuery() {
		return Wrappers.<Department>lambdaQuery();
	}

	/** 用户-部门 **/
	static LambdaQueryWrapper<UserDepartment> userDepartmentQuery() {
		return Wrappers.<UserDepartment>lambdaQuery();
	}

	static LambdaQueryWrapper<UserDepartment> userDepartmentQuery(Long userId) {
		return userDepartment().eq(UserDepartment::getUserId, userId);
	}

相当不爽的代码–>Wrappers.lambdaUpdate().set(ReportOutTempEntity::getStatus, “3”).eq(ReportOutTempEntity::getId, paramvo.getReportOutTempId()).点到昏天暗地…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值