对象导航查询,在hql中采用.进行导航(重要)
参见:ObjectNavQueryTest.java
参见:ObjectNavQueryTest.java
package com.wlh.hibernate;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import junit.framework.TestCase;
public class ObjectNavQuery extends TestCase {
public void testQuery1() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
[color=red]//s.classes.name就是导航
//s.classes从Student导航到Class,因为Student中持有Class的引用private Classes classes;[/color]
List students=session.createQuery("select s.name from Student s where s.classes.name=?")
.setParameter(0, "班级1")
.list();
for(Iterator iter=students.iterator();iter.hasNext();){
String o=(String)iter.next();
System.out.println("name="+o);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
}