hql 为什么要用 where 1=1 ?1=1 是永恒成立的,意思是无条件的,也就是在 hql/sql 语句中可有可无。
这个1=1通常用于用户需要选择条件时使用(拼凑where)。
例如:web界面查询用户的信息,where默认为1=1,这样用户即使不选择任何条件,hql/sql查询也不会出错。如果用户选择了姓名,那么where变成了where 1=1 and 姓名=“用户输入的姓名”,如果还选择了其他的条件,就不断在where 条件后追加 and语句就行了。如果不用1=1的话,每加一个条件,都要判断前面有没有where 条件,如果没有就写where ...,有就写and语句,因此此时用1=1可以简化了应用程序的复杂度。
原文:https://www.cnblogs.com/h-h096/p/13474190.html