JPA的JPQL语法总结分析和总结.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

JPQL语法总结

JPQL主要用于JPA查询数据,和SQL语句的语法大同小异;

最基本的查询:

SELECTpFROMPlayerp

查询出所有的player,包括其子类,也可以写成这样

FromPlayerasp

去除重复的元素

SELECTDISTINCTpFROMPlayerpWHEREp.position=?1

关键字DISTINCT去除了重复的元素,并且接受参数设置条件过滤结合查询关联

SELECTDISTINCTpFROMPlayerp,IN(p.teams)t

查询所有有team的player

也可以写成如下:

SELECTDISTINCTpFROMPlayerpJOINp.teamst

或者:

SELECTDISTINCTpFROMPlayerpWHEREp.teamISNOTEMPTY

关联关系的查询过滤

SELECTtFROMTeamtJOINt.leaguelWHEREl.sport=’soccer’ORl.sport=’football’

查询所有leaguesports属性的team对象

SELECTDISTINCTpFROMPlayerp,IN(p.teams)tWHEREt.league.sport=:sport

其他的查询表达式

LIKE:

SELECTpFROMPlayerp WHEREp.nameLIKE’Mich%’

ISNULL:

SELECTtFROMTeamtWHEREt.leagueISNULL

ISEMPTY:

SELECTpFROMPlayerpWHEREp.teamsISEMPTY

主要用于判断关系实体一对多集合

BETWEEN

SELECTDISTINCTpFROMPlayerpWHEREp.salaryBETWEEN:lowerSalaryAND:higherSalary

等价于:

p.salary=:lowerSalaryANDp.salary=:higherSalary

在判断日期范围的时候尤其有用;

复合条件:

AND:

SELECTDISTINCTp1FROMPlayerp1,Playerp2WHEREp1.salaryp2.salaryANDp2.name=:name

查找薪水比指定姓名的员工更高的员工

IN:

o.countryIN(’UK’,’US’,’France’)

同时你也可以在In语句中设置参数:

o.countryIN(’UK’,’US’,’France’,:country)

子查询:

SELECTcFROMCustomercWHERE(SELECTCOUNT(o)FROMc.orderso)10

EXISTS子查询:

SELECTDISTINCTempFROMEmployeeempWHEREEXISTS(SELECT

spouseEmpFROMEmployeespouseEmpWHEREspouseEmp=emp.spouse)

ALL和ANY配合==使用

SELECTempFROMEmployeeempWHEREemp.salaryALL(SELECTm.salaryFROMManagermWHEREm.department=emp.department)

其他函数:

CONCAT(String,String)

CONCAT(String,String)

String

LENGTH(String)

int

LOCATE(String,String[,start])SUBSTRING(String,start,length)

TRIM([[LEADING|TRAILING|BOTH]char)

FROM]

(String)

intString

String

LOWER(String)

String

UPPER(String)

String

算法函数:

FunctionSyntax ReturnType

ABS(number)int

ABS(number)

int,

float,or

double

MOD(int,int)

int

SQRT(double)

double

SIZE(Collection)int

1)实体对象

SELECTtFROMPlayerp,IN(p.teams)t

2)Object

您可能关注的文档

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档