知识卡片
命名参数与命名查询的价值
内容
用带名字的占位符(如:length)代替位置占位符(如?)表达查询参数,本质上是给参数赋
予自解释性:读代码时不用去数第几个问号对应第几个setter调用,也就消除了”数错顺序”这类
低级错误,还能让同一个参数在查询里被复用多次。更进一步,把整段查询语句从Java代码中抽
出、独立命名后集中存放(如放进映射文件),能把”查询逻辑”和”调用查询的业务代码”两个关
注点物理分离——查询语句不再是夹杂大量转义符号的长字符串拼接,改起来也不用小心翼翼挪
动换行位置。发散:这其实是”用名字替代位置”这一通用可读性原则在查询构造场景的应用,和
函数调用中”具名参数优于位置参数”是同一个道理。
参考来源
《精通Hibernate》第3章《建立查询的更好方法》