本demo采用5.x以前的query

一、HQL 内连接

  以数组的方式进行存储

/***
* HQL 内连接
*
* 内连接查询hql语句写法:以客户和联系人为例
*
* from Customer c inner join c.setLinkMan
*/
@Test
public void testJoin() {
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();


//1.创建query对象
Query query = session.createQuery("from Customer c inner join c.setLinkMan");

List<Customer> list = query.list();



tx.commit();
}catch (Exception e){
tx.rollback();
}finally

二、迫切内连接

  以对象的方式进行存储

/**
* 迫切内连接
*
* 区别:使用内连接返回list中每部分是数组,
* 迫切内连接返回list每部分是对象
*
* from Customer c inner join fetch c.setLinkMan
*/

@Test
public void testJoin2() {
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();


//1.创建query对象
Query query = session.createQuery("from Customer c inner join fetch c.setLinkMan");

List<Customer> list = query.list();



tx.commit();
}catch (Exception e){
tx.rollback();
}finally

三、左外连接

/**
* 左外连接
*
* from Customer c left outer join c.setLinkMan
*
* 返回每部分是数组
*/

@Test
public void testJoin3() {
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();


//1.创建query对象
Query query = session.createQuery("from Customer c left outer join c.setLinkMan");

List<Customer> list = query.list();



tx.commit();
}catch (Exception e){
tx.rollback();
}finally

四、迫切左外连接

/**
* 迫切左外连接
* from Customer c left outer join fetch c.setLinkMan
*
* 返回的每部分是对象
*/
@Test
public void testJoin4() {
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();


//1.创建query对象
Query query = session.createQuery("from Customer c left outer join fetch c.setLinkMan");

List<Customer> list = query.list();



tx.commit();
}catch (Exception e){
tx.rollback();
}finally

五、右外连接

/**
* 右外连接
* from Customer c right outer join fetch c.setLinkMan
*/
@Test
public void testJoin5() {
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();


//1.创建query对象
Query query = session.createQuery("from Customer c right outer join fetch c.setLinkMan");

List<Customer> list = query.list();



tx.commit();
}catch (Exception e){
tx.rollback();
}finally