1. 程式人生 > >Hibernate查詢方式&抓取策略

Hibernate查詢方式&抓取策略

Hibernate的查詢方式

1、OID查詢

hibernate根據物件的OID(主鍵)進行檢索

  使用get方法

Customer customer=session.get(Customer.class,1l); 

  使用load方法

Customer customer=session.load(Customer.class,1l); 

2、物件導航檢索

hibernate根據一個已經查詢到的物件,獲得其關聯的物件的一種查詢方式

LinkMan linkMan=Session.get(LinkMan.class,1l);
Customer customer=linkMan.getCustomer();

3、HQL檢索

Hibernate Query Language 的查詢語言,是一種面向物件的方式的查詢語言,語法類似於SQL。通過session.createQuery()用於接收一個HQL進行查詢

HQL的簡單查詢

	/*
	 * HQL簡單查詢
	 * */
	public void demo2() {
		Session session=HibernateUtils.openSession();
		Transaction transaction=session.beginTransaction();
		Query query=session.createQuery("from Customer");
		List<Customer> list=query.list();
		for(Customer customer:list)
			System.out.println(customer.toString());
		transaction.commit();
	}

HQL的別名查詢

	/*
	 * HQL簡單查詢
	 * */
	public void demo2() {
		Session session=HibernateUtils.openSession();
		Transaction transaction=session.beginTransaction();
		Query query=session.createQuery("from Customer c");
		List<Customer> list=query.list();
		for(Customer customer:list)
			System.out.println(customer.toString());
		transaction.commit();
	}

HQL的投影查詢

查詢物件的某個或某些屬性

	public void demo6() {
		Session session=HibernateUtils.openSession();
		Transaction transaction=session.beginTransaction();
		List<Object> list=session.createQuery("select c.cust_name from Customer c").list();
		for(Object object:list)
			System.out.println(object);
		transaction.commit();
	}