我想在存储库层中编写一些查询方法。此方法必须忽略空参数。例如:
List<Foo> findByBarAndGoo(Bar barParam, @optional Goo gooParam);
在这种情况下,此方法必须返回Foo:
bar == barParam && goo == gooParam;
如果gooParam不为null。如果gooParam为null,则条件更改为:
bar == barParam;
有什么解决办法吗?有人能帮我吗?
来不及了。不确定 Bar 和 Goo 之间的关系。检查 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 } }