0
私は2エンティティを持っている:休止状態述語の検索
@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