2014-01-30 3 views
3

최대 절전 모드 매핑을 만들고 읽고 UTC 타임 스탬프를 최대 절전 모드로 DB에 쓰려고하므로 아래 그림과 같이 최대 절전 모드 TimestampType 클래스를 확장하지만 항상 다음 오류가 발생합니다. 그래서 누군가 내가 여기서 잘못하고있는 것을 말해줌으로써 도움을받을 수 있습니까? 시간 내 줘서 고마워.TimestampType 설정 재정의 오류

이 줄 에서

여러 마커 - 방법 세트 무시하거나 슈퍼 방법 구현해야 타입 UTCTimestampType의 (PreparedStatement의 개체, INT) - 이름의 충돌 : 방법 세트 (PreparedStatement의 개체, int)를 유형을 UTCTimestampType 타입 AbstractSingleColumnStandardBasicType 세트 (PreparedStatement로, T, INT)와 같은 삭제를 가지고 있지만

public class UTCTimestampType extends org.hibernate.type.TimestampType{ 

     @Override 
     public Object get(ResultSet rs, String name) throws SQLException { 
      return rs.getTimestamp(name, createUTCCalendar()); 
     } 

     private static Calendar createUTCCalendar() { 
      final Calendar c = Calendar.getInstance(); 
      c.setTimeZone(new SimpleTimeZone(0, "UTC")); 
      return c; 
     } 

     @Override 
     public void set(PreparedStatement st, Object value, int index) 
        throws SQLException{ 
      Timestamp ts; 
      if (value instanceof Timestamp) { 
       ts = (Timestamp) value; 
      } else { 
       ts = new Timestamp(((java.util.Date)value).getTime()); 
      } 
      st.setTimestamp(index, ts, createUTCCalendar()); 
     } 
} 
+0

당신이 어떤 클래스에서'UTCTimestampType'을 확장 했는가? –

+0

@ JigarJoshi 아니, 내가 처음부터 UTCTimestampType을 컴파일 할 수 없기 때문에 – MChan

+0

당신의 questino에 최대 절전 모드 버전과 jdk 버전을 게시 할 수 있습니까? –

답변

2

TimestampType을위한 자바 문서에서 봐 재 지정을하지 않습니다 :

TimestampType 이 방법 서명이없는 개체와 set(PreparedStatement st, T value, int index)입니다

AbstractSingleColumnStandardBasicType<Date> 

확장

시도 :

@Override 
     public void set(PreparedStatement st, Date value, int index) 
        throws SQLException{... 
+0

답장을 보내 주셔서 감사합니다. 이 코드는 Hibernate 3.5를위한 것보다 더 많은 시간 동안 Hibernate 3.6 jar를 사용함에 따라 오류를 설명합니다. 마지막 질문입니다 ... Object를 Date로 변경하지 않으므로 UTC 내 질문에 언급 된 최대 절전 모드 DB에 타임 스탬프? – MChan

+0

두 번째 질문에 대답 할 수 없습니다. 해봐야 해. TimestampType이 AbstractSingleColumnStandardBasicType을 확장하므로 유형 (T)은 날짜이므로 문제가 발생할 것으로 생각하지 않습니다. –

+0

T : public void set (PreparedStatement st, T value, int index)로 재정의하려고 할 수 있습니다. 그것이 작동하는지 확실하지 않습니다. –