问题描述
当您进行本机查询以获取实体表之外的列时,出现此异常。
找不到类型为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 (将#修改为@)