Вы должны заменить desc
имя поля. Лучше не использовать JPA
зарезервированные слова
@Entity
@Table(name = "CPT")
public class CPTCodeset {
//fields
@Column(name = "Description")
private String description;
//getters and setters
}
Чтобы получить результат запроса в виде List<Object[]>
@Query("select cp.procedure.id, c.code, c.description "
+ "from CPTProcedures cp join cp.cpt c "
+ "where c.description like :searchString")
List<Object[]> findBySearch(@Param("searchString") String searchString);
или создать класс DTO
с соответствующим конструктором SearchResultDto(int, String, String)
и использовать this
@Query("select new yourproject.dto.SearchResultDto(cp.procedure.id, c.code, c.description) "
+ "from CPTProcedures cp join cp.cpt c "
+ "where c.description like :searchString")
List<SearchResultDto> findBySearch(@Param("searchString") String searchString);
Использование репозитория:
// description contains searchString
List<SearchResultDto> dtos1 = repository.findBySearch("%" + searchString + "%");
// description start with searchString
List<SearchResultDto> dtos2 = repository.findBySearch("%" + searchString);
// description end with searchString
List<SearchResultDto> dtos3 = repository.findBySearch(searchString + "%");