Hibernate5.2版本之後QBC查詢 createCriteria()方法過時的替換方式

話不多說直接上代碼

/**
	 * 4.QBC查詢全部
	 */
	@Test
	public void testSelect1() {
		//獲取session對象
		Session session = HibernateUtils.getSession();
		
		//開啓事務
		Transaction tx = session.beginTransaction();
		
		//寫具體邏輯crud(增刪改查)操作
				
		//1創建Criteria對象 createCriteria()在hibernate5.2之後過時了
//		Criteria criteria = session.createCriteria(Student.class);
//		List<Student> list = criteria.list();
//		for (Student student : list) {
//			System.out.println(student);
//		}
		
		//新的查詢方式
		//1.創建CriteriaBuilder對象
		//注意導入的包是import javax.persistence.criteria.CriteriaQuery;
		CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
		//2.獲取CriteriaQuery對象
		CriteriaQuery<Student> createQuery = criteriaBuilder.createQuery(Student.class);
		//3.指定根條件
		createQuery.from(Student.class);
		//4執行查詢
		List<Student> List = session.createQuery(createQuery).getResultList();
		
		for (Student student : List) {
			System.err.println(student);
		}
		
		//提交事務
		tx.commit();
		// 關閉資源
		HibernateUtils.close();
	}

模糊查詢

/**
	 * 4.QBC查詢
	 * 		模糊查詢
	 */
	@Test
	public void testSelect2() {
		//獲取session對象
		Session session = HibernateUtils.getSession();
		
		//開啓事務
		Transaction tx = session.beginTransaction();
		
		//寫具體邏輯crud(增刪改查)操作
				
		
		//新的查詢方式
		//1.創建CriteriaBuilder對象
		//注意導入的包是import javax.persistence.criteria.CriteriaQuery;
		CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
		//2.獲取CriteriaQuery對象
		CriteriaQuery<Student> createQuery = criteriaBuilder.createQuery(Student.class);
		//3.指定根條件
		Root<Student> root = createQuery.from(Student.class);
		//root.get("name") "name"是實體類的屬性名稱
		createQuery.where(criteriaBuilder.like(root.get("name"), "%三%"));
		//4執行查詢
		List<Student> List = session.createQuery(createQuery).getResultList();
		
		for (Student student : List) {
			System.err.println(student);
		}
		
		//提交事務
		tx.commit();
		// 關閉資源
		HibernateUtils.close();
	}
發佈了59 篇原創文章 · 獲贊 248 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章