gpt4 book ai didi

java - 单向多对一的Spring data jpa规范

转载 作者:行者123 更新时间:2023-12-01 20:05:37 28 4
gpt4 key购买 nike

public class Hotel{
@ManyToOne(optional = false)
@NotNull
@JoinColumn(name = "hotel_city", referencedColumnName = "city_id")
private City city;
}

public class City{
@Column(name = "public_id", updatable = false, unique = true)
@NotEmpty
private String publicId;
}

我想查找城市 publicId 等于给定字符串的所有酒店。

public Predicate toPredicate(Root<Hotel> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
Subquery<City> subquery = query.subquery(City.class);
Root<City> subRoot = subquery.from(City.class);
Predicate cityIdPredicate = cb.equal(subRoot.get("publicId"), criteria.getValue().toString());

return cb.equal(root.get("city"), cityIdPredicate);
}

我正在尝试使用上面的代码来

  1. 在城市表中选择publicId等于给定字符串的城市;
  2. 获取酒店的城市并将其与#1 的结果进行比较。

好像出了什么问题。这是我第一次使用规范,任何提示都有帮助。谢谢。

最佳答案

哈哈,我刚刚找到了最简单的解决方案。

        return cb.equal(root.get("city").get("publicId"), criteria.getValue().toString());

关于java - 单向多对一的Spring data jpa规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462860/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com