2014-03-06 2 views
4

내 WAS 애플리케이션에서 테이블에 매핑되는 Entity 클래스에서 변수 (String)를 정의해야한다는 요구 사항이 있습니다. 따라서 테이블과 관련된 필드에는 @Column (name = "column_name")과 같은 주석이 있습니다. 테이블의 열이 아닌이 Entity 클래스에 새 필드/변수를 추가해야한다는 요구 사항이 있습니다. 일반 필드로 선언하면 JPA는이 필드를 SQL에서도 변환합니다. 이로 인해 SQL -206 오류 (예상대로)가 발생합니다.컬럼이 아닌 Entity 클래스에서 변수를 정의하십시오.

어떻게 작성합니까?이 필드는 무엇입니까? 사용자 지정 변수를 말하고이 엔터티가 정의한 테이블의 열과 관련이없는 주석을 사용할 수 있습니까?

예 :

@Entity 
@Table(name = "TABLE_1") 
@NamedQueries(
{ 
@NamedQuery(name = "abc:findTableContent", query = "SELECT u FROM TABLE_1 u WHERE u.Id = :iD"), 
}) 
public class TableEntity1 implements Serializable 
{ 
    @Id 
    @Column(name = "TABLE1_ID") 
    private Long iD; 

    @Column(name = "DESC") 
    private String desc; 


    private String error;  


} 
그래서

나는 namedquery를 실행하는 경우, 그것은으로 실행됩니다 "? t0.iD, t0.desc, t0.error을 SELECT FROM 된 table_1 U WHERE u.iD ="

어떻게 해결할 수 있습니까? 당신의 도움을 주셔서 감사합니다!

답변

8

답변을 찾았습니다. 필드 또는 변수를 @ javax.persistence.Transient로 표시 할 수 있습니다.

+0

@transient annotation을 사용하면 이 작동합니다. – Manglesh

관련 문제