JPA中JPQL的子查詢

2021-10-05 06:35:04 字數 2850 閱讀 4542

jpa中jpql的子查詢

示例:1.employee實體類:

@entity

public class employee

public void setempid(integer empid)

public string getempaddress()

public void setempaddress(string empaddress)

public integer getempage()

public void setempage(integer empage)

public string getempgender()

public void setempgender(string empgender)

public string getempname()

public void setempname(string empname)

public double getempsalary()

public void setempsalary(double empsalary)

public date getempstartdate()

public void setempstartdate(date empstartdate)

public integer getempstatus()

public void setempstatus(integer empstatus)

@manytoone

@joincolumn(name="deptid")

public department getdept()

public void setdept(department dept)

@override

public string tostring()

public employee(integer empid, string empaddress, integer empage, string empgender, string empname,

double empsalary, date empstartdate, integer empstatus)

public employee()

public employee(integer empid, string empname, double empsalary)

}

2.department實體類:
@entity

public class department

public void setemps(setemps)

@id@generatedvalue(strategy = generationtype.identity)

public integer getdeptid()

public void setdeptid(integer deptid)

public string getdeptname()

public void setdeptname(string deptname)

public string getdeptmanager()

public void setdeptmanager(string deptmanager)

@override

public string tostring()

public department(integer deptid, string deptname, string deptmanager)

public department()

}

3.測試類
/**

* 測試子查詢功能

* * @author boge

* */

public class subquerytest }

// 查詢沒有使用者詳情的使用者資訊

/* 查詢年齡大於人事部所有員工的年齡的員工資訊

* 外層查詢:查詢員工資訊

* 內層查詢:條件 該員工資訊的年齡大於人事部所有員工的年齡

* 第一步:查詢人事部的員工年齡 10 20 30 40 50

* select emp from employee emp where emp.dept.deptid = 4

* 第二步:去參與到外層查詢

* e.empage > all(10 20 30 40 50)

*/ @test

public void test2()

} /**

* 查詢員工資訊,條件是該員工的年齡,大於4號人事部的任意乙個員工的年齡就可以

* (10 20 30 40 50)

*/// 查詢年齡大於人事部任意乙個員工的年齡的員工資訊

@test

public void test3() }

/* 查詢部門編號大於3的部門員工資訊

* 查詢的員工資訊,條件:員工的部門編號大於3

*

*/ @test

public void test1() }

@before

public void before()

@after

public void after()

}

4.xml配置檔案:
<?xml version="1.0" encoding="utf-8"?>

org.hibernate.ejb.hibernatepersistence

com.kmu.entity.employee

com.kmu.entity.department

JPA基礎(九) 使用JPQL語句進行查詢

這是持久化操作中很重要的乙個方面,通過物件導向而非面向資料庫的查詢語言查詢資料,避免程式的sql語句緊密耦合。跟hql真的很像 1 test 2public void query 只是查詢的時候不用開啟事務,只有當真正改變資料的時候需要開啟事務,1 的用的是佔位符的形式,1 表示索引號,不推薦使用字...

傳智播客 JPA的關係對映和JPQL查詢

通過昨天的學習和晚上上自習時候的練習對 jpa 有了一定的了解,對學好 jpa 有了很大的信心.呵呵.在學一門新技術的時候,總是感覺它很難可能學不會.這技術有多高深啊,不好掌握.可是每次學完了回頭一看,又感覺原來如此啊,其實不是想的那樣.哈哈.還是經驗少啊.下面對今天的學習內容總結一下.1.關係對映...

jpa 跨表 JPA的多表複雜查詢

最近工作中由於要求只能用hibernate jpa 與資料庫進行互動,在簡單查詢中,jpa繼承crudrepository介面 然後利用jpa的方法命名規範進行jpql查詢,然而在進行複雜查詢時,需要繼承jpaspecificationexecutor介面 利用specification 進行複雜查...