Невозможно вернуть список / коллекцию проекций - PullRequest
1 голос
/ 12 марта 2019

Я сделал весенний загрузочный проект для доступа к моим данным.

Мой основной класс это Patient.java:

@Entity
public class Patient {
    private Long id;
    private String numeroSs;
    private String profession;
// lot of stuff...., getters, setters, ...
}

Чтобы улучшить свои запросы, я сделал очень простую проекцию моего класса «Пациент». Я назвал эту проекцию PatientCustom:

public interface PatientCustom {
     String getNumeroSs();
     Timestamp getDateProchainRdv();
}

И в моем репозитории PatientRepo.java я создал два пользовательских метода:

@Transactional
@RepositoryRestResource(collectionResourceRel = "patient", path = "patient")
public interface PatientRepo extends JpaRepository<Patient, Long> {
    PatientCustom findOneByNumeroSs(String numeroSs);
    Collection<PatientCustom> findByNumeroSs(String numeroSs);
}

Когда я использую первый метод, нет проблем: он возвращает PatientCustom:

{
numeroSs: "150505617017002",
dateProchainRdv: null
}

Но когда я хочу получить список или коллекцию, он отправляет мне сообщение об ошибке:

{
cause: null,
message: "Couldn't find PersistentEntity for type class com.sun.proxy.$Proxy165!"
}

И следы в моем терминале:

2019-03-12 10:32:34.671 ERROR 2072 --- [nio-8090-exec-2] o.s.d.r.w.RepositoryRestExceptionHandler : Couldn't find PersistentEntity for type class com.sun.proxy.$Proxy165!
java.lang.IllegalArgumentException: Couldn't find PersistentEntity for type class com.sun.proxy.$Proxy165!
        at org.springframework.data.mapping.context.PersistentEntities.lambda$getRequiredPersistentEntity$2(PersistentEntities.java:96) ~[spring-data-commons-2.1.5.RELEASE.jar:2.1.5.RELEASE]
        at java.util.Optional.orElseThrow(Optional.java:290) ~[na:1.8.0_181]
        at org.springframework.data.mapping.context.PersistentEntities.getRequiredPersistentEntity(PersistentEntities.java:95) ~[spring-data-commons-2.1.5.RELEASE.jar:2.1.5.RELEASE]

Я очень хорошо понимаю, что Spring хочет добавить прокси-класс в мой интерфейс, но когда он хочет добавить этот прокси в список или коллекцию, он несчастен, потому что список и коллекция не являются интерфейсами, а являются классами.

Что я могу сделать, чтобы решить эту проблему?

...