Hibernate占位符?和:及JPA


小结一下hibernate占位符.

1.最常见的?占位符.

String hql = "select a from Apple a where a.color=? a.weight>?";
Query query = session.createQuery(hql);
query.setParameter(0, "red");
query.setParameter(1, "10");

下标从0开始,最常见的.这个让人头疼的是数?个数...

2.以一个变量名的形式占位.

String hql = "select a from Apple a where a.color=:pcolor a.weight>:pweight";
Query query = session.createQuery(hql);
query.setParameter("pcolor", "red");
query.setParameter("pweight", "10");

这个就不存在数?个数的问题了.应该是比较方便的一种方法了

3.JPA方式,这种方式是1的改良版本..

String hql = "select a from Apple a where a.color=?2 a.weight>?5";
Query query = session.createQuery(hql);
query.setParameter("2", "red");
query.setParameter("5", "10");

方法1中的?的索引可以自己随意任命了..


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM