可以透过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(); session.close(); 在设定参数值时,必须依照 ? 所设定的顺序,并使用对应型态的setXXX()方法,一个执行的例子如下:
您可以使用命名参数(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(); 设定命名参数时,在建立Query时先使用:后跟着参数名,之后就可以在setXXX()方法中直接指定参数名来设定参数值,而不用依照特定的顺序。 |