У меня есть сущность ConventionEntity с сетевым объектом и списком типов активности объекта
Я хочу искать соглашения с несколькими критериями, я использовал данные Spring, поэтому я использовал запрос для поиска
* 1004 запрос у меня есть эта ошибка
org.hibernate.QueryException: невозможно разыменовать скалярный элемент коллекции: categoryPerimeter [SELECT c FROM com.softilys.entities.ConventionEntity c JOIN c .activityTypes act ГДЕ act.categoryPerimeter =: периметр И c .network.networkName IN (: networkNames) И c .title =: title]
@Entity
public class ConventionEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String title;
private Network network;
@ElementCollection
private Set<ActivityType> activityTypes;
}
public class Network implements Serializable {
private static final long serialVersionUID = 1L;
private String networkName;
}
public class ActivityType implements Serializable {
private static final long serialVersionUID = 1L;
private String categoryPerimeter;
}
@Repository
public interface ConventionRepository extends JpaRepository<ConventionEntity, String> {
@Query("SELECT c FROM ConventionEntity c "
+ "LEFT JOIN c.activityTypes act "
+ "WHERE act.categoryPerimeter = :perimeter "
+ "AND c.network.networkName IN (:networkNames) "
+ "AND c.title = :title ")
List<ConventionEntity> searchConventions(@Param("title") String title, @Param("perimeter") String perimeter ,
@Param("networkNames") List<String> networkNames);
}