『壹』 Hibernate4 升級到Hibernate5 中 sql查詢注意事項
在 Hibernate4 中,利用原生SQL語句查詢時,
1、可使用Session.createSQLQuery(sql)建立Qurey(org.hibernate.Query),
2、可使用Query.setParameter(int index, Object obj),對sql語句中的參數根據位置進行參數值動態綁定;
升級到 Hibernate5 後
1、org.hibernate.Query被標記為@Deprecated
2、Session().createSQLQuery(sql)返回類型為org.hibernate.query.Query;
3、並且Session().createSQLQuery也已經被標記為@Deprecated;
4、可使用Session().createNativeQuery(sql)代替createSQLQuery。
5、createNativeQuery返回的Query, 不可 通過setParameter(int index, Object obj) 根據位置 進行參數值動態綁定; 只可以 通過setParameter(String paramname, Object obj) 按參數名稱綁定 。
6、createNativeQuery(sql)中的sql語句中的 查詢佔位符
只可使用 命名參數 方式進行編寫。
上問錯誤例子中,將導致如下錯誤: