spring数据classcastexception

o4tp2gmn  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(249)

我试图用spring数据做一个类投影。它应该是工作的,因为要求是“其构造函数的参数名必须匹配根实体类的属性。”并且它匹配。但不管出于什么原因,它抛出了一个例外:

java.lang.ClassCastException: class ws.xx.posts.post.PostSnapshot cannot be cast to class ws.xx.posts.post.dto.query.PostDetailsQueryDTO (ws.xx.posts.post.PostSnapshot and ws.xx.posts.post.dto.query.PostDetailsQueryDTO are in unnamed module of loader 'app')

值得注意的是,实体位于“posts domain”模块中,dto位于“posts app”模块中。我已经尝试过在没有lombok的情况下手动执行它,但是结果是一样的,它抛出了一个异常。
实体(在单独的文件orm.xml中配置,这是它的值对象):

@EqualsAndHashCode
@ToString
@Getter(value = PACKAGE)
@NoArgsConstructor(access = PROTECTED)
@AllArgsConstructor(access = PACKAGE)
class PostSnapshot {

    private Long id;

    private UUID postId;
    private UUID ownerId;

    private String title;
    private String description;

    private ZonedDateTime createDate;
}

dto公司:

@Builder(toBuilder = true)
@EqualsAndHashCode
@ToString
@Getter
@AllArgsConstructor
public class PostDetailsQueryDTO implements Serializable {

    private UUID postId;
    private UUID ownerId;

    private String title;
    private String description;

    private ZonedDateTime createDate;
}

查询存储:

interface SqlPostQueryRepository extends PostQueryRepository, Repository<PostSnapshot, Long> {
    @Override
    PostDetailsQueryDTO findByPostId(UUID postId);

    @Override
    Page<PostDetailsQueryDTO> findAll(Pageable pageable);
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题