jpa审计功能对oracle不生效,@ jqlResultSetMapping在jpa无效的列名错误

我正在使用JOIN语句从两个表(APPLICANT和ADDRESS)使用createNativeQuery获取数据。 但我得到一个无效的列名称错误。 的实际情况是:@ jqlResultSetMapping在jpa无效的列名错误

在申请人类

@SqlResultSetMapping(name="menu-details",

entities={

@EntityResult(entityClass=Applicant.class, fields = {

@FieldResult(name="id", column="APPLICANT_ID"),

@FieldResult(name="contactNo", column="CONTACT_NO"),

@FieldResult(name="dateOfBirth", column="DATE_OF_BIRTH"),

@FieldResult(name="name", column="APPLICANT_NAME"),

@FieldResult(name="status", column="STATUS")

}),

@EntityResult(entityClass=AddressA.class, fields = {

@FieldResult(name="state", column="STATE")

})

}

)

In DAO, I am trying

String nativeQuery="select distinct (LA. APPLICANT_ID) as APPLICANT_ID, LA.CONTACT_NO as CONTACT_NO,LA.DATE_OF_BIRTH as DATE_OF_BIRTH,LA.APPLICANT_NAME as APPLICANT_NAME,

LA.STATUS as STATUS, LAA.STATE as STATE from loan_applicant LA,

loan_address_a LAA where LA.applicant_id=LAA.applicant_id";

Query q=entityManager.createNativeQuery (nativeQuery,"menu-details");

ArrayList menuList=new ArrayList();

List objects=q.getResultList();

System.out.println("the no of queries is "+objects.size());

for(Object object:objects){

if(object instanceof Applicant){

Applicant applicant=(Applicant)object;

System.out.println(applicant.getId());

System.out.println(applicant.getName());

System.out.println(applicant.getContactNo());

}

if(object instanceof AddressA){

AddressA address=(AddressA)object;

System.out.println(address.getState());

}

}

while executing I am getting an error

Caused by: java.sql.SQLException: Invalid column name at oracle.jdbc.dbaccessdbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)

+0

您指定SqlResultSetMapping使用,它试图从SQL结果创建申请人和地址实体,但它似乎不完整的。例如,Address是否真的只有一个State域?如果不是,则还需要返回构建地址所需的其他字段。尝试在您的本机查询中使用select *作为别名,并且FieldResult不应该是必需的,除非您从实体中映射的内容返回不同的字段。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值