Hibernate查询总结之对象导航查询

Hibernate查询总结

    • OID—get
    • 对象属性导航查询
    • HQL
    • Criteria
    • 原生SQL

–待补充–

对象属性导航查询

//对象导航查询代码
@Test
    public void testSelectObject(){
        Session session = null;
        Transaction transaction = null;
        try {
            //1.使用SessionFactory创建Session对象
            //理解:类似于jdbc的连接数据库
            session = HibernateUtils.getSessionObject();
            //2.开启事务
            transaction = session.beginTransaction();
            //3.写具体的crud操作
            //查询cid=3的客户,在查询他的所有联系人
            //01.查询cid=3的客户
            Customer customer = session.get(Customer.class, 3);
            //02.再查询cid=3的客户的所有联系人
            //通过客户的联系人属性获取其所有的联系人
            Set<LinkMan> linkMans = customer.getSetLinkMan();
            for (LinkMan linkMan : linkMans) {
                System.out.println(linkMan);
            }
            //4.提交事务
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //5.回滚事务
            transaction.rollback();
        } finally {
            //6.关闭资源     在使用了与本地线程绑定的session对象之后,就不需要手动关闭session了
            session.close();
        }
    }

附:HibernateUtils

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtils {
	private static SessionFactory sf;
	
	static{
		//1 创建,调用空参构造
		Configuration conf = new Configuration().configure();
		//2 根据配置信息,创建 SessionFactory对象
		 sf = conf.buildSessionFactory();
	}
	
	//获得session => 获得全新session
	public static Session openSession(){
				
				Session session = sf.openSession();//3 获得session
				return session;
	}
	
	//获得session => 获得与线程绑定的session
	public static Session getCurrentSession(){
		
		Session session = sf.getCurrentSession();//3 获得session
		return session;
	}
	
	
}

原文地址:https://www.cnblogs.com/onefine/p/10499393.html