基于JPQL实现纯SQL语句方法详解
JPQL全称JavaPersistenceQueryLanguage。
基于首次在EJB2.0中引入的EJB查询语言(EJBQL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。
其特征与原生SQL语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。
使用JPQL,需要把SQL语句修改成类似HQL语句。SQL查询的是数据库,而JPQL查询的是对象和属性,在语法上是有些不同的。对于有些用JPQL无法写出来的查询,还是使用原生SQL写出来方便
以下给出一个例子,注意语法的区别:
JPQL查询
@PersistenceContext protectedEntityManagerem; publicList
SQL查询
查询最近7天的数据
publicListfindVideoList2(){ List result=(List )em.createNativeQuery ("select*fromdb_videowheredate_sub(curdate(),interval6day)<=date(date)orderbydatedesc",Video.class) .getResultList(); returnresult; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。