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

这篇文章主要介绍了基于JPQL实现纯SQL语句方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/15433/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-08-26 6:05:59
下一篇 2022-08-26 6:06:08

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!