import org.hibernate.annotations.OrderBy;
import javax.persistence.Column;
import javax.persistence.Entity;
public class A implements Serializable
{
@Id
@Column(name="SNR")
private long ASnr;
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name="B")
private Set<B> bset;
public Set<B> getB() {
return this.bset;
}
@OrderBy(clause="bsnr DESC")
public void setB(Set<B> bset) {
this.bset = bset;
}
}
public class B implements Serializable
{
@Id
@Column(name="BSNR")
private long bsnr;
public long getBsnr() {
return this.bsnr;
}
public void setBsnr(long bsnr) {
this.bsnr= bsnr;
}
}
对于上面的代码,@OrderBy
无效。当我尝试进行hibernate
查询时,只有select查询显示在控制台上,并且sql查询中没有order by子句。我留下了什么或写得不正确吗?
答案 0 :(得分:1)
你已经用过了
import org.hibernate.annotations.OrderBy;
你试过
吗?import javax.persistence.OrderBy;
@OrderBy("bsnr")
我认为你误解了@Orderby
注释实际上做了什么。根据javadoc:
指定值集合的元素的顺序 关联或关联时的关联或元素集合 收集集合。
The annotation does not dictate insertion order
尝试添加属性或getter
答案 1 :(得分:0)
我在类路径中添加了antlr-2.7.7.jar,并在代码中使用了javax.persistence.OrderBy。现在它完美无缺。