У меня есть следующая сущность (не точная, но дает общее представление):
@Entity
public class WebElement implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
@ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
private Set<CoreElement> coreElements;
private String agent;
// ... omitting const' get/set hashcode equals etc.
}
public class CoreElement implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
private String value;
// ... omitting const' get/set hashcode equals etc.
}
Моя проблема при попытке получить WebElements
с использованием Criteria
API вместо HQL
При выполнении следующего я получаю пустой список.
getCurrentSession().createCriteria(WebElement.class)
.createCriteria("coreElements").add(
Restrictions.eq("value", value)).list();
Но при выполнении следующего HQL я получаю правильный результат.
select distinct we from WebElement we, in(we.coreElements) core
where core.value = :inputValue
Можете ли вы помочь выяснить, что я делаю неправильно или отличается между этими вызовами?
( ПРИМЕЧАНИЕ Я предпочитаю работать с Criteria API вместо HQL.