1:顺序占位符:?
hsql从0开始
sql是从1开始
String hql = "from User user WHERE user.name = ? AND user.age = ?";
List<User> list = session.createQuery(hql).setString(0, "Erica")
.setInteger(1, 10).list();
2:引用占位符: :name
String hql = "from User user WHERE user.uName = :name AND user.uAge = :age";
List<User> list = session.createQuery(hql).setString("name", "Erica")
.setInteger("age", 10).list();
3:ssm中 CDATA
<query name="queryTest"><![CDATA[FROM User user where user.uAge < 20]]></query>
HQL语句的的“<”(小于)与xml的语法有冲突。所以我们会用CDATA将其包裹。
参考
https://blog.csdn.net/qq_28633249/article/details/77884062