找不到用于类型的属性,对于本机jpa投影

问题描述

当您进行本机查询以获取实体表之外的列时,出现此异常。

找不到类型为TEntity的属性parentName

EntityTable

@Entity
@Table(name="t")
@NamedNativeQueries(value = {
        @NamedNativeQuery(
                name = "TEntity",query = "select t.name as name,t2.name as parentName from t left join t t2 on t.parent_uuid=t2.uuid",resultSetMapping = "tt"
        )
}
)
@SqlResultSetMapping(name="tt",classes={
                @ConstructorResult(targetClass= TDTO.class,columns={
                        @ColumnResult(name="parentName",type=String.class),})
        }
)
public class TEntity {
...
    @ManyToOne
    @JoinColumn(name="parent_uuid")
    @JsonBackReference
    private TEntity parentT;
}

存储库

@Repository
public interface TRepo  extends IExtendedJpaRepository<TEntity,UUID> {
    @Query(nativeQuery=true)
    List<TLightDTO> findTEntitiesByisDelete(boolean isDelete,Pageable pageable);
}

自定义DTO

public interface TDTO {
    String getName();
    String getParentName();
}

不欢迎我尝试从TRepo获取自定义DTO(TDTO),这很合理,必须从TEntity找到自定义DTO字段,

我真的很想使用本机查询来获取仅TDTO所需的信息,因此我可以优化搜索。但是这个例外阻止了我。

使用本地查询来获取自定义POJO时,为了避免此异常,我该怎么做?并使用IExtendedJpaRepository。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...