jov1 最近的时间轴更新
jov1

jov1

V2EX 第 496057 号会员,加入于 2020-06-23 17:23:35 +08:00
今日活跃度排名 3138
jov1 最近回复了
20 小时 30 分钟前
回复了 jov1 创建的主题 程序员 请教一个数据库或代码的唯一性设计问题
@Rickkkkkkk
@xhawk
@fuyufjh 嗯,感觉大家提供意见和参考,之前也问了 gpt ,给出的方案是类似 path 级别这样的,但是测试几个场景后还是会存在我说的那种错误判断包含的情况,试着在这基础上不断调整,感觉可以满足,这样写可以避免这种情况(1,2,2),传入(1,2,23)
select CONCAT_WS(',',ifnull(a,''), ifnull(b,''), ifnull(c,'')) as uniqueKey
from t
where t.uniqueKey = #{uniqueKey,jdbcType=VARCHAR}
or t.uniqueKey like CONCAT(#{uniqueKey,jdbcType=VARCHAR}, ',%')
or #{uniqueKey,jdbcType=VARCHAR} like CONCAT(t.uniqueKey, ',%')
if (BooleanUtils.isTrue(xx.getEnableVoice()) {
// 校验 voiceContent 是否为空
} else {
xx.setVoiceContent(null);
} 应该也可以实现 ConstraintValidator 来自定义校验规则,拓展注解之类的,只是目前是类似这样处理的
也会有类似问题,通用的用提供的注解声明,这种情况判定来动态处理验证的,我目前放在业务实现里面校验处理,因为可能还需要对数据处理,比如 enableVoice 不等于 true ,如果前端传入了 voiceContent ,后端其实还类似需要清空这个值,那么顺手可以把校验 enableVoice=true 时 voiceContent 的非空校验做了,
类似于
if (BooleanUtils.isTrue(xx.getEnableVoice()) {

}
支持一下,希望能体验用上
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1025 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.