mybatis想给其中某个字段赋成null,mapper层怎么判断这个传进来的null是 需要赋空值还是需要略过不更新 5
借用网友的描述更新一条记录一般都是传入一个Entity实例,然后Sql语句通过主键查找要更新的记录、通过字段为Null或为空判断要更新的字段。但是,这种做法存在Bug:比...
借用网友的描述
更新一条记录一般都是传入一个Entity实例,然后Sql语句通过主键查找要更新的记录、通过字段为Null或为空判断要更新的字段。
但是,这种做法存在Bug:
比如某人在某个允许为空的字段(例如[家庭住址])填写了内容,然后他想删除掉,于是他在页面上把这个字段的内容清空, 然后点保存,然后…他会发现原先的内容居然还在,没有办法清除了!
或许这个实例,大家会说,那我就只判断Null不判断空好了。
可是,假如这个允许为空的字段是一个日期型呢?我们如何判断是要清空这个字段还是保持不变?
或许大家会说,你在前面的业务层肯定能知道是要清空还是要保持不变,但是问题在于,Mapper层要怎么判断呢?判断Null和判断空都不可行了,那么应该怎样判断呢? 展开
更新一条记录一般都是传入一个Entity实例,然后Sql语句通过主键查找要更新的记录、通过字段为Null或为空判断要更新的字段。
但是,这种做法存在Bug:
比如某人在某个允许为空的字段(例如[家庭住址])填写了内容,然后他想删除掉,于是他在页面上把这个字段的内容清空, 然后点保存,然后…他会发现原先的内容居然还在,没有办法清除了!
或许这个实例,大家会说,那我就只判断Null不判断空好了。
可是,假如这个允许为空的字段是一个日期型呢?我们如何判断是要清空这个字段还是保持不变?
或许大家会说,你在前面的业务层肯定能知道是要清空还是要保持不变,但是问题在于,Mapper层要怎么判断呢?判断Null和判断空都不可行了,那么应该怎样判断呢? 展开
3个回答
展开全部
<if test="name!=null and name!=''">
</if>
这么判断就行
追问
这样的话,给name赋空值时,name=null仍然是传不进去的呀
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知这样是否符合业务:DAO层只判断是否为空,若为空,则表示这个字段不需要更新,若要更新为空,业务层传个空字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询