可以透過org.hibernate.Query介面的實(shí)例來(lái)進(jìn)行查詢,透過Query介面,您可以先設(shè)定查詢參數(shù),之后透過setXXX()等方法,將指定的參數(shù)值填入,而不用每次都撰寫完整的HQL,直接來(lái)看個(gè)例子: 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(); 在設(shè)定參數(shù)值時(shí),必須依照 ? 所設(shè)定的順序,并使用對(duì)應(yīng)型態(tài)的setXXX()方法,一個(gè)執(zhí)行的例子如下:
您可以使用命名參數(shù)(Named Parameter)來(lái)取代這個(gè)方法,這可以不用依照特定的順序來(lái)設(shè)定參數(shù)值,并擁有較好的可讀性,直接來(lái)看個(gè)例子: 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(); 設(shè)定命名參數(shù)時(shí),在建立Query時(shí)先使用:后跟著參數(shù)名,之后就可以在setXXX()方法中直接指定參數(shù)名來(lái)設(shè)定參數(shù)值,而不用依照特定的順序。 |