- 坚决不要用拼字符串的方式去将参数加到 HQL 语句中去,否则会有安全问题,比如 SQL 注入。应该使用 HQL 的参数绑定功能。
- HQL 和 JPA QL 的参数绑定有两种方式,一是根据名字绑定,二是根据位置绑定。HQL 和 JPA QL 的位置参数绑定的起始值是不同的,HQL 从 0 开始,JPA QL 从 1 开始。因为 HQL 以 JDBC 为基础,而 JPA QL 以旧版的 EJB QL 为基础。
- Query 的 iterate 方法与 list 类似,不同之处在于初始的结果集仅包含主键信息。遍历时,如果结果在一级和二级缓存中均不存在。Hibernate 将执行 select 语句加载完整的对象。对于包含某些大信息量字段的记录而言,iterate 是一种优化查询的手段,前提是相应的记录使用了二级缓存。
本文探讨了HQL与JPAQL中的参数绑定技术,包括按名称和位置绑定参数的方法,并强调了避免使用字符串拼接的重要性以防止SQL注入攻击。同时介绍了Query的iterate方法如何用于优化大信息量字段的查询。
1109

被折叠的 条评论
为什么被折叠?



