Ich habe diese Struktur:Malformed Abfrage 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;
}
}
und ich versuche, eine einfache Abfrage zu tun:
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();
Ich erhalte diese Abfrage (und Fehler) auf dem Protokoll :
DEBUG SQL: 92 - wähle estimate0_.id als id1_25_, estimate0_.average_ticket als average_2_25_, estimate0_.description als descript3_25_, estimate0_.end_date als end_date4_25_, est imate0_.pax_quantity als pax_quan5_25_, estimate0_.start_date als start_da6_25_ aus Schätzung estimate0_ Quer verbinden estimate_sale_item_type interested1_ wo estimate0_.id = interested1_.estimate_id und (. in)
DEBUG SqlExceptionHelper (?): 124 - konnte nicht ResultSet extrahieren [n/a] org.postgresql.util.PSQLException: Kein Wert angegeben für Parameter 1.
Warum Hibernate tut diese Abfrage?
Im Hibernate 5.1 Schluss
Kasse http://stackoverflow.com/questions/4828049/in-clause-in-hql-or-java-persistence-query-language –