如何在hibernate条件中订购oneToMany连接表

说我有一个班上的母亲与一对一的映射到小猫

@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "Mother")

.....

@OneToMany(fetch = FetchType.LAZY, targetEntity=Kittens.class, cascade=CascadeType.ALL)
@JoinColumn(name="motherId")
private List<Kittens> kittens;

我使用的标准Api提供一个列表

Criteria criteria = this.getSession().createCriteria(Mother.class);
Criterion MotherType = Restrictions.eq("type", "domesticated");
criteria.add(MotherType)
.addOrder(Order.asc("motherName"))
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.setFetchMode("kittens", FetchMode.JOIN)
// .addOrder(Order.asc("kittens.kittenName"));
List test = criteria.list();

工作正常,直到我尝试添加小猫字段kittenName的顺序

我还尝试在Kitten @OneToMany(…等)下添加@OrderBy(value =“kittenName”)注释,这样可以正常工作,直到您使用条件API,并且此顺序将先于sql中的任何其他顺序语句。

提前提醒有任何帮助…

您需要将@javax.persistence.OrderBy注释添加到您的小猫列表中。

@OneToMany(fetch = FetchType.LAZY,
           targetEntity=Kittens.class,
           cascade=CascadeType.ALL)
@JoinColumn(name="motherId")
@OrderBy("kittenName")
private List<Kittens> kittens;

@看到

> Hibernate注释参考指南
> Chapter 2.2.5. Mapping entity associations/relationships
>第2.2.5.3.4小节。索引集合(列表,地图)

http://stackoverflow.com/questions/5560035/how-do-you-order-a-onetomany-join-table-in-hibernate-criteria

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何在hibernate条件中订购oneToMany连接表