微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决找不到用于类型的属性,对于本机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 举报,一经查实,本站将立刻删除。