Эта ошибка выдается с одной из моих конечных точек отдыха jersey-glassfish (из журналов домена):
Причина: java.lang.IllegalArgumentException: тип, указанный для TypedQuery [com.tanukis.streetama.entity.Flow], несовместим с типом возврата запроса [interface java.util.Set]
в org.hibernate.ejb.AbstractEntityManagerImpl.createNamedQuery (AbstractEntityManagerImpl.java:458)
в com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery (EntityManagerWrapper.java:566)
at com.tanukis.streetama.dao.FluxManager.getBlacklist (FluxManager.java:571)
Запрос определен в orm.xml:
SELECT DISTINCT s.blacklistedFlow FROM StreetamaUser s WHERE s.uid = :uid
Вот мой объект StreetamaUser:
@ManyToMany(cascade= javax.persistence.CascadeType.ALL)
@JoinTable(
name="ws_user_blacklist",
uniqueConstraints = @UniqueConstraint(columnNames = { "blacklisted_flow_id", "user_id" }),
joinColumns = {
@JoinColumn(name="user_id",referencedColumnName="uid")
},
inverseJoinColumns = {
@JoinColumn(name="blacklisted_flow_id",referencedColumnName="id")
}
)
@XmlTransient
private Set<Flow> blacklistedFlow = new HashSet<Flow>();
И запрос вызова:
List<Flow> result = em.createNamedQuery( "StreetamaUser.findBlacklist", Flow.class )
.setParameter("iduser", uid )
.setFirstResult(startitem)
.setMaxResults(itemnbr)
.getResultList();
Я не могу понять исключение Hibernate. getResultList возвращает список, так почему он жалуется на тип возвращаемого запроса?