项目中Hiberinated的多表操作语法比较诡异,一般不建议使用
内链接
@Test
//Hql的多表查询
//内链接将两方的数据放入数组中
public void test(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//linkmans为Customeri对象中的Set集合的名称
String hql = "from Customer c inner join c.linkmans";
Query query = session.createQuery(hql);
List<Object[]> list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tx.commit();
session.close();
}
迫切内链接
将linkmans集合装到Customer对象中
//迫切内链接
//将linkmans集合装到Customer对象中
@Test
public void test2(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//linkmans为Customeri对象中的Set集合的名称
String hql = "from Customer c inner join fetch c.linkmans ";
Query query = session.createQuery(hql);
List<Customer> list = query.list();
System.out.println(list);
tx.commit();
session.close();
}
左外链接
@Test
//左外链接 两方的数据放入数组中
public void test3(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//linkmans为Customeri对象中的Set集合的名称
String hql = "from Customer c left join c.linkmans ";
Query query = session.createQuery(hql);
List<Object[]> list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tx.commit();
session.close();
}
右外连接
@Test
//右外链接两方的数据放入数组中
public void test4(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//linkmans为Customeri对象中的Set集合的名称
String hql = "from Customer c right join c.linkmans ";
Query query = session.createQuery(hql);
List<Object[]> list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tx.commit();
session.close();
}