Codooba
JCenter
posts - 20,comments - 9,trackbacks - 0
可以透过org.hibernate.Query介面的实例来进行查询,透过Query介面,您可以先设定查询参数,之后透过setXXX()等方法,将指定的参数值填入,而不用每次都撰写完整的HQL,直接来看个例子:
Session session = sessionFactory.openSession();
Query query = session.createQuery("select user.name from User as user where user.age > ?");
query.setInteger(0, 25);

List names = query.list();
Iterator iterator =  names.iterator();
while(iterator.hasNext()) {
    System.out.println(iterator.next());
}

session.close();

在设定参数值时,必须依照 ? 所设定的顺序,并使用对应型态的setXXX()方法,一个执行的例子如下:

Hibernate: select user0_.name as col_0_0_ from user user0_ where user0_.age>?
momor
caterpillar
bush

您可以使用命名参数(Named Parameter)来取代这个方法,这可以不用依照特定的顺序来设定参数值,并拥有较好的可读性,直接来看个例子:
Session session = sessionFactory.openSession();
Query query = session.createQuery("select user.name from User as user where user.age > :minAge");
query.setInteger("minAge", 25);

List names = query.list();
Iterator iterator =  names.iterator();
while(iterator.hasNext()) {
    System.out.println(iterator.next());
}

session.close();


设定命名参数时,在建立Query时先使用:后跟着参数名,之后就可以在setXXX()方法中直接指定参数名来设定参数值,而不用依照特定的顺序。
posted on 2007-10-11 20:59 Zhangwenlong 阅读(9523) 评论(2)  编辑  收藏

FeedBack:
# re: Hibernate Query对象
2011-12-02 16:13 | mojie
你敢把字体设置的再小一些吗?  回复  更多评论
  
# re: Hibernate Query对象
2011-12-03 16:52 | 灰色轨迹
你摔到了脑袋吧?爱看不看@mojie
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: