当前位置: 移动技术网 > IT编程>数据库>MSSQL > 基于JPQL实现纯SQL语句方法详解

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

2020年09月26日  | 移动技术网IT编程  | 我要评论
jpql全称java persistence query language。基于首次在ejb2.0中引入的ejb查询语言(ejb ql),java持久化查询语言(jpql)是一种可移植的查询语言,旨在

jpql全称java persistence query language。

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

其特征与原生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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网