簡體   English   中英

用於單向多對一的Spring Data JPA規范

[英]Spring data jpa specification for unidirectional many-to-one

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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM