首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@SqlResultSetMapping in jpa列名称无效错误

@SqlResultSetMapping in jpa列名称无效错误
EN

Stack Overflow用户
提问于 2013-07-30 14:38:39
回答 1查看 3.3K关注 0票数 1

我使用一条JOIN语句通过createNativeQuery从两个表(申请者和地址)中获取数据。但是我得到了一个无效的列名错误。实际情况是:

在申请者班级

代码语言:javascript
复制
@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")
            })
    }

)

代码语言:javascript
复制
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<Applicant> menuList=new ArrayList<Applicant>();
List<Object> 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
代码语言:javascript
复制
 `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)`
EN

回答 1

Stack Overflow用户

发布于 2013-07-30 15:19:56

您可以这样写:

代码语言:javascript
复制
from loan_applicant LA, loan_address_a LAA where La.applicant_id=la. applicant_id

也许你想要的是:

代码语言:javascript
复制
from loan_applicant LA, loan_address_a LAA where LA.applicant_id=LAA.applicant_id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17939904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档