JPA findBy 语法总结

JPA同时查询两个属性, 其中一个是embedded class的属性

findByIdageAndTime(int age, Date time)

表格汇总

JPA findBy 语法总结_第1张图片
JPA findBy 语法总结_第2张图片

Spring Data JPA框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、getBy,然后对剩下部分进行解析。

JPA的NamedQueries

  • 在实体类上使用@NamedQuery,示例如下:
@NamedQuery(name = "UserModel.findByAge",query = "select o from UserModel o where o.age >= ?1")
  • 在自己实现的DAO的Repository接口里面定义一个同名的方法,示例如下:
public List findByAge(int age);
  • 然后就可以使用了,Spring会先找是否有同名的NamedQuery,如果有,那么就不会按照接口定义的方法来解析。

JPQL查询

  @Query("from SysUser u where u.nickname=:nickname")
    SysUser findUser(@Param("nickname") String nickname);

    @Query("from SysUser u where u.nickname like  %:nickname% order by u.fans desc")
    List findUsers(@Param("nickname") String nickname);

你可能感兴趣的:(JPA findBy 语法总结)