0
休眠謂詞搜索我有兩個實體:在連接表
@Entity
public class Organization {
@Column(name = "name")
public String name;
@OneToMany(mappedBy = "organization")
public Collection<Tin> tin;
}
@Entity
public class Tin {
@Column(name = "name")
public String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ORGANIZATION_ID", nullable = false)
public Organization organization;
}
我想錫名稱中使用CriteriaBuilder搜索組織和謂詞
對於搜索我想有謂詞的列表
List<Predicate> getPredicates() {
List<Predicate> predicates = new ArrayList<Predicate>();
....
if (StringUtils.isNotBlank(orgSearchCriteria.getTaxIdNumber())) {
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Tin> criteria = criteriaBuilder.createQuery(Tin.class);
Root<Tin> companyRoot = criteria.from(Tin.class);
predicates.add(
criteriaBuilder.equal(companyRoot.join("tin").get("name"), orgSearchCriteria.getName())
);
}
....
return predicates
}
你有沒有試過做到這一點? – Vaibs
是的,我試過這個: CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery criteria = criteriaBuilder.createQuery(Tin.class); 根 companyRoot = criteria.from(Tin.class); predicates.add( )criteriaBuilder.equal(companyRoot.join(「tin」)。get(「tin」),orgSearchCriteria.getTaxIdNumber()) ); –
請分享您的代碼,所以我們略知一二 – Vaibs