我有一个路由类,在这个类中,我定义了一个位置集合。
@ManyToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY)
@JoinTable(name = "route_location_map")
private List<Location> locations;
我需要检查我的路线中是否存在特定位置
if (locationId != null && locationId.longValue() > 0) {
Expression<Collection<Long>> locations = route.get("locations").get("id");
predicate = builder.isMember(locationId, locations);
whereClauseList.add(predicate);
不幸的是,这个逻辑不起作用,我也没有得到任何错误。 有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
发布下一个堆栈跟踪。您需要将isMember()与您的实体或表达式一起使用。
public List<Route> findRoutes(Location location){
...
Expression<Collection<Location>> locations = route.get("locations");
predicate = builder.isMember(location, locations);
...
}