Как заказать таблицу соединения oneToMany в условиях гибернации

Допустим, у меня есть класс Mother с сопоставлением 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

Я также попытался добавить аннотацию @OrderBy (value = "kittenName") под котенком @OneToMany (... и т.д.), который отлично работает до тех пор, пока вы не используете API критериев, и этот порядок будет предшествовать любым другим операторам порядка в sql.

Заранее благодарим за любую помощь ...

36
задан jaseFace 6 April 2011 в 00:03
поделиться