Моя теория заключается в том, что Spring не может создать проекцию для сущности, которая расширяет другой класс (в моем случае это класс DomainObject).
Это моя сущность (JobEntity):https://pastebin.com/3EdtPBSZ
Мой репозиторий
@RepositoryRestResource(excerptProjection = JobExcerpt.class)
public interface JobExcerptRepository extends JpaRepository<JobEntity, Long> {
JobExcerpt findByIdAndRetailerId(Long jobId, Long retailerId);
}
Класс JobExcerpt:
@Projection(
name = "jobProjection",
types = { JobEntity.class })
public interface JobExcerpt {
Long getId();
Long getRetailerId();
}
Прежде чем вы скажете, что мне нужно, чтобы мой метод репозитория #findByIdAndRetailerId возвращал тип "JobEntity""Я пробовал это, и проекция не применяется, так как я могу получить доступ к полям объекта, которые не определены в проекции. Я следую учебному пособию Baeldung в сочетании с некоторыми другими источниками в сети.
Сообщение трассировки стека java.lang.ClassCastException: au.com.parcelpoint.domain.batch.JobEntity cannot be cast to au.com.parcelpoint.domain.batch.projection.JobExcerpt
Трассировка полного стека: https://pastebin.com/MjBNTT7Y