我正在使用 JPA 使用 Java 开发路线规划系统。
我需要创建一个 findBy 方法来通过其包含的城市列表查找路线。
以下是课程:
@Entity
public class Route {
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<City> cities = new ArrayList<>();
.
.
}
@Entity
public class City {
.
.
}
现在我尝试了,但并不奇怪它不起作用,如下:
@Repository
public interface RouteRepository extends JpaRepository<Route, Long> {
Optional<Route> findByCities(List<City> city);
}
有没有一种简单的方法可以使用 JPA 来做到这一点,或者我是否必须编写一个困难的自己的 @Query 并以某种方式进行迭代,以通过集合查找实体?
您可以更改方法的签名RouteRepository
, 使用 IN 运算符。
@Repository
public interface RouteRepository extends JpaRepository<Route, Long> {
Optional<Route> findByCitiesIn(List<City> cities);
}
那么它应该可以工作。但请注意,这不是完全匹配。
检查更多信息
https://docs.spring.io/spring-data/jpa/docs/2.1.x/reference/html/#jpa.query-methods https://docs.spring.io/spring-data/jpa/docs/2.1.x/reference/html/#jpa.query-methods
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)