最近新项目又使用了jpa。
对JPA简直又爱又恨。。。基本能满足了所有的基本查询,还基本不用写sql语句,但是。。。。弊端就不说了吧。
下面来详细看下支持的查询方式。
根据方法名字生成SQL语句(根据方法名查询)
public interface UserRepository extends Repository<User, Long> {
List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
}
我们将使用JPA criteria API 创建一个查询,但本质上这转换为以下查询:
select u from User u where u.emailAddress = ?1 and u.lastname = ?2
Spring Data JPA将执行属性检查并遍历属性表达式中描述的嵌套属性。下面是 JPA 支持的关键字的概述,以及包含该关键字的方法的本质含义。
SQL关键词想细介绍
关键词 | Demo | JPQL 语句片段 |
---|---|---|
And | findByLastnameAndFirstname | … where x.lastname = ?1 and x.firstname = |