0
我有一個@ManyToMany連接與臨時表。
表1具有0 .. *表2和表2 0 .. *表1。
當我要求表1的元素和序列化它。我得到一個包含Table2數組的Table1數組。 Table1的數組按主鍵排序。但是表1中的數組表2是隨機排序的。訂購@ManyToMany連接的ResultList
如何排序表1中的Table2的數組的主鍵?
CODE:
表1
@Table(name = "Person")
@Entity
public class PersonDetail1 extends Person implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "PERSON_ITEM", joinColumns = {@JoinColumn(name = "PERS_FK", referencedColumnName = "PERS_PK")}, inverseJoinColumns = {@JoinColumn(name = "ITEM_FK", referencedColumnName = "ITEM_PK")})
private Set<Item> items;
}
表2
@Entity
public class Item implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ITEM_PK")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "PERSON_ITEM", joinColumns = {@JoinColumn(name = "ITEM_FK", referencedColumnName = "ITEM_PK")}, inverseJoinColumns = {@JoinColumn(name = "PERS_FK", referencedColumnName = "PERS_PK")})
private Set<PersonDetail1> personen;
}
得到表1
@Override
public List<PersonDetail1> getPersonen() throws DetailException {
TypedQuery<PersonDetail1> q = em.createQuery("SELECT x from PersonDetail1 x", PersonDetail1.class);
return q.getResultList();
}
得到序列化對象
@GET
@Path("/personen")
@Produces(MediaType.APPLICATION_JSON)
@Override
public Response getPersonen(){
return Response.status(Response.Status.OK).entity(persService.getPersonen()).build();
}
您是否嘗試過使用ORDER BY? – kostja
是的,但我不知道它退出了。 – Claudia
我沒有問題訂購我的查詢「正常」。像:「SELECT x從PersonDetail1 x ORDER BY x.id asc ...但是如何在列表中排列列表? – Claudia