JPA的findBy语法整理

1.jpa的数据操作接口

package com.lzq.jpa.entity.repository;

import com.lzq.jpa.entity.User;

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**

  • Created by qiang on 2018/1/22.

*/

public interface UserRepository extends JpaRepository{

/**

  • 相当于 select *from user where name=?

  • @param name

  • @return

*/

public List findByName(String name);

/**

  • 相当于select *from user where name like ?

  • 但是有一点需要注意的是,%需要我们自己来写

  • @param name

  • @return

*/

public List findByNameLike(String name);

/**

  • 相当于select *from user where name not like ?

  • 但是有一点需要注意的是,%需要我们自己来写

  • @param name

  • @return

*/

public List findByNameNotLike(String name);

/**

  • 相当于 select *from user where name <> ?

  • @param name

  • @return

*/

public List findByNameNot(String name);

/**

  • 相当于 select *from user where id in (?)

  • @param ids

  • @return

*/

public List findByIdIn(List ids);

/**

  • 相当于 select *from user where id not in ()

  • @param ids

  • @return

*/

public List findByIdNotIn(List ids);

/**

  • 相当于 select *from user where name=? order by height desc

  • @param name

  • @return

*/

public List findByNameOrderByHeightDesc(String name);

/**

  • 相当于 select *from user where name=? order by height asc

  • @param name

  • @return

*/

public List findByNameOrderByHeightAsc(String name);

/**

  • 相当于 select *from user where name is null

  • @return

*/

public List findByNameIsNull();

/**

  • 相当于 select *from user where name is not null

  • @return

*/

public List findByNameIsNotNull();

/**

  • 相当于 select *from user where name =? and height=?

  • @param name

  • @param height

  • @return

*/

public List findByNameAndHeight(String name,int height);

/**

  • 相当于 select *from user where name =? or height=?

  • @param name

  • @param height

  • @return

*/

public List findByNameOrHeight(String name,int height);

/**

  • 相当于 select *from user where height between ? and ?

  • 需要注意的是mysql是有包含两个端点值的

  • @param start

  • @param end

  • @return

*/

public List findByHeightBetween(int start,int end);

/**

  • 相当于 select *from user where height < ?

  • 需要注意的是mysql是没有包含端点值的

  • @param less

  • @return

*/

public List findByHeightLessThan(int less);

/**

  • 相当于 select *from user where height > ?

  • 需要注意的是mysql是没有包含端点值的

  • @param greater

  • @return

*/

public List findByHeightGreaterThan(int greater);

}

具体语法规则和对应的sql都在代码中给出来了,这边需要和大家说的是UserRepository接口的特点。我们通过继承JpaRepository《对应的实体类,主键属性值》来编写findBy等相关的函数来查询数据库。继承JpaRepository的接口在使用的时候,通过@Autowired会自动创建接口的实现类,不需要怎么去实现这个接口,这也是jpa最方便的地方。

你可能感兴趣的:(JPA的findBy语法整理)