У меня есть эта структура:искаженного запроса с использованием IN
public enum SaleItemType {
CRUISE,
DAILY_HOSTING
}
public class Estimate {
...
private List<SaleItemType> interestedSaleItemTypes;
@Column(name = "sale_item_type")
@CollectionTable(name = "estimate_sale_item_type", joinColumns = @JoinColumn(name = "estimate_id"))
@ElementCollection(targetClass = SaleItemType.class)
@Enumerated(EnumType.STRING)
public List<SaleItemType> getInterestedSaleItemTypes() {
return interestedSaleItemTypes;
}
}
И я пытаюсь сделать простой запрос:
String q = "FROM " + Estimate.class.getSimpleName() + " e" + " WHERE e.interestedSaleItemTypes IN :a";
TypedQuery<Estimate> query1 = getEm().createQuery(q, Estimate.class);
query1.setParameter("a", EnumSet.of(SaleItemType.CRUISE));
query1.getResultList();
Я получаю этот запрос (и ошибки) на бревне :
DEBUG SQL: 92 - выберите estimate0_.id в id1_25_, estimate0_.average_ticket как average_2_25_, estimate0_.description как descript3_25_, estimate0_.end_date как end_date4_25_, ЭСТ imate0_.pax_quantity как pax_quan5_25_, оценка0_.start_date как start_da6_25_ из оценки оценки0_ cross join оценить_sale_item_type заинтересован1_ где оценка0_.id = interesting1_.estimate_id и (. в)
DEBUG SqlExceptionHelper (?): 124 - не может извлечь ResultSet [N/A] org.postgresql.util.PSQLException: Не задано значение параметра 1.
Почему спящий режим делает этот запрос?
Im использованием Hibernate 5.1 Final
заказ http://stackoverflow.com/questions/4828049/in-clause-in-hql-or-java-persistence-query-language –