如何通過對聯合實體調用訂單?我試圖實現與以下內容:JPA CRITERIA查詢通過加入列的順序
SELECT * FROM人員P內的p.id加入電話T = t.person_id通過s.name DESC加入上s.id = t.sim_id爲了SIM小號
@Entity
public class Person implements Serializable{
@Id
private Long id;
@OneToMany(orphanRemoval = true, mappedBy = "person", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private List<Telephone> telephonesNumber;
@Entity
public class Telephone implements Serializable {
@Id
private String number;
@Id
@ManyToOne()
@JoinColumn(name = "person_id")
private Person person;
@Id
@ManyToOne(cascade = {})
@JoinColumn(name = "sim_id")
private Sim sim;
@Entity
public class Sim implements Serializable {
@Id
private Long id;
@Column(unique = true)
private String name;
我用規範的接口,在這個例子中排序在場上person.id和它的作品
public class PersonSpecification implements Specification<Person> {
@Override
public Predicate toPredicate(Root<Person> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
List<Predicate> predicates = new ArrayList<>();
// there is many different conditions for example
// if(someCondition!=null) {
// predicates.add(builder.like(root.get("someProperty"), someValue));
// }
query.groupBy(root.get("id"));
//there I want to order by Sim.name i dont know how
query.orderBy(builder.asc(root.get("phone")));//this works
return builder.and((predicates.toArray(new Predicate[predicates.size()])));
}
我想Sim.name訂購,但我不知道怎麼辦。
您試過的Criteria查詢在哪裏? –
thx的問題,我更新我的帖子有關我到目前爲止做了什麼 – Wait