весенние данные - запрос левого соединения с ElementCollection - PullRequest
1 голос
/ 07 мая 2020

У меня есть сущность 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);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...