Исходя из вашего поста, я предполагаю, что ваша модель сущности похожа на следующую
@Entity
public class Ticket {
/* other attributes */
@OneToMany(mappedBy = "ticket")
private List<TicketEntry> entries;
}
@Entity
public class TicketEntry {
/* other attributes */
@ManyToOne
private Ticket ticket;
}
Если вы хотите использовать Hibernate Criteria API, вы должны сделать это, используя:
Restrictions.sizeEq( "entries", 1 )
Вы можете сделать это с Hibernate HQL следующим образом
SELECT t FROM Ticket t WHERE size(t.entries) = 1
Специальная функция size()
в HQL проверяет размер коллекции.
В обоих случаях здесь предполагается, что корнем запроса, к которому применяются sizeEq
и size()
, является родительский элемент Ticket
, чтобы удовлетворить все необходимые Ticket
иметь только 1
запись.