Java JPA本机查询结果集映射到具有子类的实体类

Java JPA本机查询结果集映射到具有子类的实体类,java,spring-boot,jpa,spring-data-jpa,hibernate-native-query,Java,Spring Boot,Jpa,Spring Data Jpa,Hibernate Native Query,(列和变量名称在发布问题后更改)我正在使用jpa自定义方法中的entityManager.createNativeQuery(somequery)编写联接查询,当我运行代码时,出现以下错误: com.ibm.db2.jcc.am.SqlException:[jcc][10150][10300][4.12.56]无效>参数:未知列名exc_seq_nbr。ERRORCODE=-4460,SQLSTATE=null 我正在使用ibmdb2server和springboot ExceptionEnde

(列和变量名称在发布问题后更改)我正在使用jpa自定义方法中的entityManager.createNativeQuery(somequery)编写联接查询,当我运行代码时,出现以下错误:

com.ibm.db2.jcc.am.SqlException:[jcc][10150][10300][4.12.56]无效>参数:未知列名exc_seq_nbr。ERRORCODE=-4460,SQLSTATE=null

我正在使用ibmdb2server和springboot

ExceptionEnderPK(实体类中的对象)未正确映射,这就是获取无效列的原因有人能告诉我如何映射ExceptionEnderPK对象类吗

注意:在这种情况下,我不能使用@OneToMany,因为表是不相关的

@实体
@表(name=“Table_name”)
@资料
公共类主类{
@嵌入ID
@JsonProperty(value=“mainPojoclassPK”)
私有MainPojoclassPK MainPojoclassPK;
@列(name=“amt”)
@JsonProperty(value=“amt”)
私人银行;
@列(name=“tndid”)
@JsonProperty(value=“tndid”)
私家侦探;
@列(name=“cde”)
@JsonProperty(value=“cde”)
私有字符串cde;
@列(name=“ind”)
@JsonProperty(value=“ind”)
私有字符串ind;
@列(name=“user”)
@JsonProperty(value=“user”)
私有字符串用户;
@列(name=“updateTime”)
@JsonProperty(value=“updateTime”)
私人日期更新时间;
@列(name=“src”)
@JsonProperty(value=“src”)
私有字符串src;
@列(name=“stat”)
@JsonProperty(value=“stat”)
私有字符串统计;
}
@交易的
公共接口JoinQueryRepository扩展了JpaRepository、JoinQueryRepositoryCustom{
}
公共接口JoinQueryRepositoryCustom{
列出getGRDetails(MainPojoclass et,日期报告日期);
}
公共类JoinQueryRepositoryImpl实现JoinQueryRepositoryCustom{
@持久上下文
实体管理器实体管理器;
@抑制警告(“全部”)
@凌驾
公共列表getGRDetails(MainPojoclass et,日期rdate){
String queryStr=“从表et中选择et.Salss\u DTE”
+“在et.Salss_dte=etr.Salss_dte上加入dte etr,其中et.nbr=?”;
List datalist=null;
Query=entityManager。
createNativeQuery(queryStr,“映射”)
.设置参数(1222);
datalist=query.getResultList();
返回数据列表;
}
}

错误表示没有列exc_seq_nbr,您在EntityResult映射中使用了该列


在您的查询中,您只返回et.SLS\DTE您必须返回结果集映射中的所有列。

您好,因为我没有得到任何解决方案,所以下面的解决方案对我有效,删除下面的@SqlResultSetMapping代码在没有sql结果集映射的情况下有效

Query q = em.createNativeQuery(queryStr);
List<Object[]> resultList = q.getResultList();

for (Object[] result : resultList) {
   entityObj.setReason(result[0].toString);
//rest attribute will convert from result[1].toString to corresponding
// data type and set to entity object
}
Query q=em.createNativeQuery(queryStr);
List resultList=q.getResultList();
对于(对象[]结果:结果列表){
entityObj.setReason(结果[0].toString);
//rest属性将从结果[1]转换为相应的字符串
//数据类型并设置为实体对象
}

您好,谢谢您的回复。我更改了查询,选择了所有仍然得到完全相同错误的列
Query q = em.createNativeQuery(queryStr);
List<Object[]> resultList = q.getResultList();

for (Object[] result : resultList) {
   entityObj.setReason(result[0].toString);
//rest attribute will convert from result[1].toString to corresponding
// data type and set to entity object
}