разные поля
@Column(name = "access_for_job_titles")
@Type(type = "string-array")
private String[] accessForJobTitles;
}
Вопрос, как правильно сделать что то типа такого запроса:
@Query("SELECT ac FROM AcademyCourse ac WHERE ?1 = ANY (ac.accessForJobTitles)")
List<AcademyCourse> getCourses(String accessForJobTitles);
C ANY не катит, в БД данные в таком формате {СЕО,CTO}
в бд жсон?
почему оно в бд так сохранено?
так постгре сохраняет тип text[]
почему не катит? как раз синтаксис для поиска в массиве
хз.. возможно потому что тип массива постгре а не джава, на этапе компиляции эксепшн
покажи ошибку блять
подожди, а что у тебя в селекте вообще, алиас таблицы?
Вот реальный запрос: @Query("SELECT ac FROM AcademyCourseUk ac WHERE ac.idCompany = ?1 AND ac.academyCourse.active = ?2 " + "AND (ac.academyCourse.teamAccess = false OR (ac.academyCourse.teamAccess = true AND ?3 = ANY (ac.academyCourse.accessForJobTitles))) ORDER BY ac.idCourse DESC") List<AcademyCourseUk> getCourses(Long idCompany, Boolean active, String jobTitle); эксепшн: Could not create query for public abstract java.util.List pro.hrsystems.backend.spring.repository.AcademyCourseUkRepository.getCourses(java.lang.Long,java.lang.Boolean,java.lang.String); Reason: Validation failed for query for method public abstract java.util.List pro.hrsystems.backend.spring.repository.AcademyCourseUkRepository.getCourses(java.lang.Long,java.lang.Boolean,java.lang.String)!; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List pro.hrsystems.backend.spring.repository.AcademyCourseUkRepository.getCourses(java.lang.Long,java.lang.Boolean,java.lang.String)!
еще раз, что у тебя в селекете
короче мне кажется в списке полей проблема
SELECT ac FROM на месте ac должен быть список полей
нафига? Я же целиком весь объект забираю
тогда тебе нужно делать select * from
так это же JPA a не чистый SQL)
Обсуждают сегодня