基于JPQL实现纯SQL语句方法详解

吾爱主题 阅读:157 2024-04-05 14:21:40 评论:0

JPQL全称Java Persistence Query Language。

基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。

其特征与原生SQL语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。

使用JPQL,需要把SQL语句修改成类似HQL 语句。SQL 查询的是数据库,而JPQL 查询的是对象和属性,在语法上是有些不同的。对于有些用JPQL 无法写出来的查询,还是使用原生SQL写出来方便

以下给出一个例子,注意语法的区别:

JPQL查询

?
1 2 3 4 5 6 7 8 9 10 @PersistenceContext protected EntityManager em;   public List<Video> findVideoList1() {   String hql = "from Video order by id desc" ;   Query query = em.createQuery(hql);   List<Video> result = query.getResultList();   em.clear();    return result; }

SQL查询

查询最近7天的数据

?
1 2 3 4 5 6 public List<Video> findVideoList2() {   List<Video> result = (List<Video>) em.createNativeQuery     ( "select * from db_video where date_sub(curdate(), interval 6 day) <= date(date) order by date desc" , Video. class )     .getResultList();    return result; }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/acm-bingzi/p/sqlJpql.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容