如何使用JPQL写纯SQL语句

Posted 阿丙的博客园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JPQL写纯SQL语句相关的知识,希望对你有一定的参考价值。

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

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

JPQL查询

@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天的数据

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;
}

 

原创文章,欢迎转载,转载请注明出处!

以上是关于如何使用JPQL写纯SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JPQL(Spring JPA 查询)中使用 JOIN 执行 UPDATE 语句?

JPQL 的基本使用

JPA 多对多JPQL查询语句怎么写?

如何使用 JPQL 创建动态更新查询?

如何使用 JPQL 从 SELECT 操作中获取第一行?

如何将复杂的 SQL 查询转换为 JPQL?