org.springframework.data.mapping.PropertyReferenceException: имя свойства не найдено для введите Задача!
Я просмотрел ответы на похожие вопросы, которые задавались на этом сайте ранее, и попытался смоделировать свой код следовать рекомендованным шаблонам, но код по-прежнему дает сбой.
Когда я просматриваю код с помощью отладчика, расширенный путь в построителе критериев возвращает встроенный ID класса, но когда спецификация фактически используется в запросе, создается впечатление, что атрибут применяется к базовому классу сущности.
Я упускаю что-то очевидное? p>
Вот класс сущности:
Код: Выделить всё
@Entity
@Table(name = "TASKS")
public class Task implements Serializable {
@EmbeddedId
private TaskId id;
...more attributes, getters and setters
}
Код: Выделить всё
@Embeddable
public class TaskId implements Serializable {
@Column(name = "NAME", length = 100)
private String name;
...more attributes, getters and setters
}
Код: Выделить всё
public class HasTaskNameSpec {
private HasTaskNameSpec() {
}
public static Specification equals(String name) {
return (root, query, criteriaBuilder) -> {
return criteriaBuilder.equal(root.get("id").get("name"), taskName);
};
}
}
Код: Выделить всё
List results = taskRepository.findAll(HasTaskNameSpec.equals("foo"));
Код: Выделить всё
public interface TaskRepository extends JpaRepository, JpaSpecificationExecutor {
List findByIdName(String name);
Page findByIdName(String name, Pageable page);
}
Подробнее здесь: https://stackoverflow.com/questions/478 ... embeddedid
Мобильная версия