2012-04-20 5 views
1

안녕하세요, 저는 테이블에서 Date를 long (밀리 초)으로 반환해야합니다. 액세스해야하는 열은 oracle db에 있으며 Timestamp 유형 (이름 ROW_TMSTP)입니다. 내가 무슨 짓을엔티티가 오래 돌아 오는 날짜가

입니다 : 때때로

작동
@Column(name = "ROW_TMSTP") 
@Override 
@Temporal(TemporalType.TIMESTAMP) 
public Date getEntityTimeStamp() { 
    return entityTS; 
} 

@Transient 
public Long getVersion() { 
    return entityTS.getTime(); 
} 

.... 버전이 x보다 높은 레코드를 선택하려면 작동하지 않습니다.

Timestamp를 long으로 사용할 수있는 엔티티 클래스를 작성하는 방법은 무엇입니까?

그리고 DB 구조를 변경하라고 설득하지 말아주세요. 나는 거기에있는 것을 고수해야하고 getVersion에 의해 필드를 반환해야합니다.

감사합니다. getVersion에 매핑

편집

부족은 잘못된 식별자 결과 내 선택 쿼리를 얻었다. @Transient을 제거하고 적절한 매핑을 추가하면 문제가 해결되었습니다.

@Column(name="ROW_TMSTP", updatable=false, insertable=false) 
public Long getVersion() { 
    return entityTS.getTime(); 
} 

날짜가 길어질수록 까다 롭습니다.하지만 내 문제는 아닙니다.

+0

어떻게하면 문제가 해결 되었습니까? – Sudhakar

+0

설명은 위와 같지 않습니다. @Transient Long getVersion은 작동하지 않습니다. – Deo

답변

0

내가 버전은 X

하나의 다른 방법에 비해 이상이고, 대신에 where 절에서 버전을 사용하여, 당신은 타임 스탬프 긴 변환 할 수있다 레코드를 선택하려는 경우가 작동 나던 및 엔티티 타임 스탬프를 사용하여 where 절에서 사용해야합니다.

+0

예, 알았습니다.하지만 약 40 개의 queryString을 변경해야한다는 것을 의미합니다. – Deo

관련 문제