java.lang.ClassCastException : JobEntity cannot be cast to JobExcerpt (using Spring Data Projections)

标签 java spring hibernate spring-data-jpa

使用 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);

问题是...这行代码中没有可见的(强制转换)类似运算符。应该不会显示吧?

堆栈跟踪: https://pastebin.com/iNG8h5dn

最佳答案

您似乎返回了一份工作摘录投影。这就是你得到 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/

相关文章:

java - JFileChooser 的替代品

java - Maven 错误 : Maven Project Configuration for Module isn't available

java - 运行 find 会抛出一个 Detached 实体传递给持久异常

java - 无法在数据库更新时更新当前时间戳

java - 如何从另一个android xml文件中通过id获取颜色

java - 从 Java 在 MySQL 中记录 utf-8 字符串时出现问题

java - 如何在 Spring MVC 中基于 Controller 和操作方法创建 URL?

spring - 如果 webflux mono 的条件在 kotlin 中为真,则仅在 mongo db 中存储用户

java - 无法处理托管/反向引用 'defaultReference' : back reference type (java. util.List) 与托管类型不兼容 (ForumAnswerReplay)

java - org.hibernate.hql.internal.ast.QuerySyntaxException : Employee is not mapped even though i use the class name of the entity