Сортировка родительских строк на основе дочернего свойства в критериях гибернации - PullRequest
0 голосов
/ 11 февраля 2020

Я использую критерии гибернации для сортировки родительских строк на основе свойства даты дочерних коллекций

public class Parent
{
   private int id;    
   private string code;    

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")
   private Set<Child> childs = new HashSet<>(0);
}

public class Child
{
   private int id;

   @Temporal(TemporalType.TIMESTAMP)
   @Column(name = "START_DATE", length = 19)
   private Date startDate;    

   @ManyToOne
   @JoinColumn(name = "parent_Id")
   private Parent parent;
}
Session session = sessionFactory.getCurrentSession();
Criteria cr = session.createCriteria(Parent.class);
cr.createAlias("parent.childs", "childs");
cr.addOrder(Order.desc("childs.startDate"));
cr.setFirstResult(0);
cr.setMaxResults(20);                
cr.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
(List<Parent>)cr.list();

Хотя существует 20 родительских записей, список возвращает 13 записей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...