2016-09-20 9 views
1

여기 내 코드잘못된 열 이름 오류 오라클 10g 데이터베이스와 넷위버 서버에서 JPA의 nativequery를 사용하는 동안 넷위버 서버 국지적 인 데이터베이스에 JPA의 nativequery를 사용하는 동안 내가 잘못된 열 이름 오류를 받고 있어요

입니다 오라클 10g

입니다

되는 SQLException 쿼리를 실행 발생

는 제외 ge_equip_type 외 [et.eqt_desc 행을 선택하는 맵핑 :
Query query = em.createNativeQuery("select et.eqt_desc from ge_equip_type et",GeEquipType.class); 
final List<String> equipList = query.getResultList(); 

따르기 던져진 예외 ION] javax.ejb.EJBException : 중첩 예외 : javax.persistence.PersistenceException : ge_equip_type et
에서 et.eqt_desc를 선택하도록 매핑 된 쿼리 실행 중 SQLException이 발생했습니다. ..
..................
발생 원인 : java.sql.SQLException : 잘못된 열 이름 oracle.jdbc.driver.OracleStatement.getColumnIndex (OracleStatement. 자바 : 3651) oracle.jdbc.driver.OracleResultSetImpl.findColumn (OracleResultSetImpl.java:2543) 에서 com.sap.engine.services.dbpool.wrappers.ResultSetWrapper.findColumn (ResultSetWrapper.java:87에서)
에서 COM .sap.engine.services.orpersistence.query.EntityResultFactory $ NamedEntityResult.getColumnNumber (EntityResultFactory.java:239)
com.sap.engine.services.orpersistence.core.PrimaryKey.createFromEntityResult (PrimaryKey.java:246)
at com.sap.engine.services.orpersistence.core.StoreManager.processEntityRow (StoreManager.java:1631)
com.sap.engine.services.orpersistence.core.StoreManager.resultSet2ObjectList에서 (StoreManager.java:1602) com.sap.engine.services.orpersistence.core.StoreManager.executeQueryWithoutProcessingEntityInfos에서
(StoreManager.java:1120) com.sap.engine.services.orpersistence.core.PersistenceContextImpl.executeQuery에서 com.sap.engine.services.orpersistence.core.StoreManager.executeQuery (StoreManager.java:1141) (PersistenceContextImpl.java:937)에서

,451,515,

GeEquipType 클래스

package com.jnj.e2.cpl.orm; 

import java.io.Serializable; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.SequenceGenerator; 
import javax.persistence.Table; 
import javax.persistence.Version; 

@Entity 
@Table(name = "GE_EQUIP_TYPE") 
@SequenceGenerator(name = "SEQ_EQT", sequenceName = "SEQ_EQT", allocationSize = 1, initialValue = 1) 
@SuppressWarnings("serial") 
public class GeEquipType implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_EQT") 
    @Column(name = "EQT_ID") 
    private Long uid; 

    @Column(name = "EQT_CODE") 
    private String code; 

    @Column(name = "EQT_DESC") 
    private String description; 

    @Column(name = "EQT_CLEAN_VAL_SPAN_DAYS") 
    private Long cleaningValiditySpan; 

    @Column(name = "EQT_INDC_PRODUCT_YN") 
    private String inDirectContactWithProduct; 

    @ManyToOne 
    @JoinColumn(name = "EQT_PRT_ID") 
    private GePrinterType printerType; 

    @Version 
    @Column(name = "EQT_OLV") 
    private Long version; 

    public Long getUid() { 
    return uid; 
    } 

    public void setUid(Long uid) { 
    this.uid = uid; 
    } 

    public String getCode() { 
    return code; 
    } 

    public void setCode(String code) { 
    this.code = code; 
    } 

    public String getDescription() { 
    return description; 
    } 

    public void setDescription(String description) { 
    this.description = description; 
    } 

    public Long getCleaningValiditySpan() { 
    return cleaningValiditySpan; 
    } 

    public void setCleaningValiditySpan(Long cleaningValiditySpan) { 
    this.cleaningValiditySpan = cleaningValiditySpan; 
    } 

    public String getInDirectContactWithProduct() { 
    return inDirectContactWithProduct; 
    } 

    public void setInDirectContactWithProduct(String inDirectContactWithProduct) { 
    this.inDirectContactWithProduct = inDirectContactWithProduct; 
    } 

    public GePrinterType getPrinterType() { 
    return printerType; 
    } 

    public void setPrinterType(GePrinterType printerType) { 
    this.printerType = printerType; 
    } 

    public Long getVersion() { 
    return version; 
    } 

    public void setVersion(Long version) { 
    this.version = version; 
    } 

    @Override 
    public int hashCode() { 
    return 31 + (uid == null ? 0 : uid.hashCode()); 
    } 

    @Override 
    public boolean equals(Object obj) { 
    if (this == obj) { 
     return true; 
    } else if (obj == null || getClass() != obj.getClass()) { 
     return false; 
    } 

    final GeEquipType that = (GeEquipType) obj; 

    if (uid == null) { 
     if (that.uid != null) { 
     return false; 
     } 
    } else if (!uid.equals(that.uid)) { 
     return false; 
    } 

    return true; 
    } 
} 

참고 : 나는 모든 열 또는 기본 키 열이 아닌 문자열 열을 가져올 때 쿼리가 작동합니다.

누구든지 도와주세요.

+0

다음을 실행하면 결과를 볼 수 있습니까? '선택 et.eqt_desc ge_equip_type et' – user75ponic

+0

백엔드 값을 얻는 중 ... 나는 nativequery 메신저를 사용하여 다음과 같이 예외 메 시지를 실행합니다. – sab

+0

사용중인 JPA에 대해 언급하고 예외를 제공합니다. – user75ponic

답변

0

당신은 또한

String sql = "select et.eqt_desc from ge_equip_type et"; 
Query query = em.createNativeQuery(sql, GeEquipType.class); 
List<GeEquipType> equipList = (List<GeEquipType>) query.getResultList(); 

로, 프로젝트 설정에서 오라클 JDBC JAR 파일이 있는지 확인 시도 할 수 있습니다.

+0

언급 한대로 시도했지만 여전히 동일한 오류가 발생합니다. – sab

+0

질문을 편집하여 'GeEquipType.class'를 제공하십시오. – user75ponic

+0

GeEquipType.class를 제공했습니다. – sab