前言
JPA框架通过解析方法名称的方式生成对应的SQL,极大减少了开发工作量,JPA满足于通用情况下的简单开发工作,一些麻烦的业务情况则需手写SQL实现,JPQL应用于这种复杂场景。
JPQL与SQL的区别
- SQL是面向数据库,其操作的是数据表和数据列
- JPQL操作的是实体对象和实体属性
具体应用
JPQL 语句基本格式
select 实体别名.属性名 from 实体名 实体别名 where 实体别名.实体属性 = xxx
简单示例
- JPA查询示例
Optional<Theme> findByName(String name);
- JPQL查询示例
@Query("select t from Theme t where t.name in (:names)")
List<Theme> findByNames(@Param("names") List<String> names);
- JPQL的查询主要由Query接口来完成的,使用@Query注解创建查询提供一个需要的JPQL语句即可。