2
如何獲得「Specification」「toPredicate」方法的類型轉換?具有繼承性的彈簧規格
例:
@Entity
public class Empresa{...}
@Entity
public class Cliente extends Empresa{
private Integer cod;
...
}
@Entity
public class Vinculo{
private Empresa emp1;
private Empresa emp2;
}
public static Specification<Vinculo> serieEq(final Integer cod) {
return new Specification<Vinculo>() {
@Override
public Predicate toPredicate(Root<Vinculo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
return cb.equal(root.join("emp2").get("cod"), cod);
};
}
注意, 「鱈魚」 是僅在Cliente存在。
非常感謝,
它適用於EclipseLink,但不適用於Hibernate。這裏有一個更詳細的答案:http://stackoverflow.com/questions/6427126/polymorphic-criteriaquery-without-inverse-relationship –