一尘不染

查询方法中的Spring Data可选参数

hibernate

我想在存储库层中编写一些查询方法。此方法必须忽略空参数。例如:

List<Foo> findByBarAndGoo(Bar barParam, @optional Goo gooParam);

在这种情况下,此方法必须返回Foo:

bar == barParam && goo == gooParam;

如果gooParam不为null。如果gooParam为null,则条件更改为:

bar == barParam;

有什么解决办法吗?有人能帮我吗?


阅读 259

收藏
2020-06-20

共1个答案

一尘不染

来不及了。不确定 BarGoo 之间的关系。检查 Example是否 可以帮助您。

它为我工作。我有一个类似的情况,实体 用户 具有属性集,并且有基于属性(可选)搜索用户的 findAll 方法。

例,

  Class User{
    String firstName;
    String lastName;
    String id;
  }

  Class UserService{
     // All are optional
     List<User> findBy(String firstName, String lastName, String id){
        User u = new User();
        u.setFirstName(firstName);
        u.setLastName(lastName);
        u.setId(id);

        userRepository.findAll(Example.of(user));
        // userRepository is a JpaRepository class
     }
  }
2020-06-20