使用 JobExcerpt 使用投影获取实体类 JobEntity 的特定字段。
JobEntity类:https://pastebin.com/GPeQDiRp
JobExcerpt 类:
@Projection(
name = "jobProjection",
types = { JobEntity.class })
public interface JobExcerpt {
Long getId();
JobEntity.Status getStatus();
List<BatchEntity> getBatches();
Date getCreatedOn();
Long getRetailerId();
}
非常简单JobExcerptRepository类:
@RepositoryRestResource(excerptProjection = JobExcerpt.class)
public interface JobExcerptRepository extends JpaRepository<JobEntity, Long> {
JobExcerpt findByIdAndRetailerId(Long jobId, Long retailerId);
}
失败的代码行:
JobExcerpt jobExcerpt = jobExcerptRepository.findByIdAndRetailerId(jobId, retailerId);
问题是...这行代码中没有可见的(强制转换)类似运算符。应该不会显示吧?
最佳答案
您似乎返回了一份工作摘录投影。这就是你得到 ClassCastException 的原因。应该是这样的。
@RepositoryRestResource(excerptProjection = JobExcerpt.class)
public interface JobExcerptRepository extends JpaRepository<JobEntity, Long> {
JobEntity findByIdAndRetailerId(Long jobId, Long retailerId);
}
JobEntity jobEntity = jobExcerptRepository.findByIdAndRetailerId(jobId, retailerId);
关于java.lang.ClassCastException : JobEntity cannot be cast to JobExcerpt (using Spring Data Projections),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58229280/