本文使用了 SpringBoot 中的
spring-boot-starter-data-jpa
模块来加入 JPA 功能,单独使用 Spring Data JPA 可能有差异,JDK 版本为 8
介绍
Spring Data JPA 是 Spring Data 项目众多子项目中的一个,是对 Java JPA 规范扩展,本身使用了 Hibernate 的 JPA 实现,并提供了更丰富的 API 及查询功能,最常用的方式有:
- JPA api,通过如 findById、 save、 findAll 等 API 进行查询
- @Query 查询,通过在 interface 方法申明注解实现查询
- Specification 查询,及 Criteria 查询
- JPQL 动态查询,手动构造 JPQL 语句进行查询
- Native SQL 动态查询,手动构造原生 SQL 语句进行查询
Native SQL
Native SQL 功能可以直接调用数据库原生的 SQL 进行查询,注意如果使用了数据库特定的语法和函数,那么程序就会失去移植性,一个最简单的 Native SQL例子:
@PersistenceContext
EntityManager entityManager;
public List findByNativeSQL() {
String sql = "select * from user";
Query query = entityManager.createNativeQuery(sql);
List list = query.getResultList();
return list;
}
增加查询参数后:
String sql = "select * from user where name like :name";
Query query = entityManager.createNativeQuery(sql);
query.setParameter("name", "%诱%");
List list = query