0
美好的一天。JPA @OrderBy不在@ElementCollection中工作
A有一个简单的实体,其中有@ElementCollection Set。 数据库表的方案 - 因此:enter image description here
@Entity
@Table(name = "Dealer")
public class Dealer implements java.io.Serializable{
private int id;
private Set<Integer> modelYears = new LinkedHashSet<Integer>(0);
...
@Id
@GeneratedValue
@Column(name = "Id", unique = true, nullable = false)
@XmlTransient
public int getId() {
return this.id;
}
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "DealerModelYear", joinColumns = @JoinColumn(name = "DealerId"))
@Column(name = "ModelYear")
@OrderBy("ModelYear ASC")
@XmlElementWrapper
@XmlElement(name = "modelYear")
public Set<Integer> getModelYears() {
return this.modelYears;
}
public void setModelYears(Set<Integer> modelYears) {
this.modelYears = modelYears;
}
在这里,不要工作@OrderBy( “ModelYear ASC”) - 为什么?>它必须在对数据库的SQL请求期间执行。 (另外在官方文档中有与Set相似的例子)
提前致谢。
'OrderBy'是通过元素的字段排序元素。首先有一个Set,因为它是一个Set,所以没有这个顺序,其次这个元素没有字段! “Integer”是否有“ModelYear”字段?不。 –
@Neil Stockton好吧,这是否意味着//OrderCha for // ElementCollection只适用于// Embeddable类型?如果我们是魔杖排序可以使用TreeSet实现Set ?> –
Nolik
只有使用'ElementCollection'时,'OrderBy'才具有可嵌入性,是的。 TreeSet是一种方法,只要您的JPA提供程序支持在实例化集合时设置比较器。 –