2010-12-03 2 views
3

상황이 있습니다. mysql 데이터베이스에 두 종류의 날짜가 있습니다. 하나는 날짜이고 다른 하나는 datetime입니다. 이제 최대 절전 기준에서 한 날짜가 다른 날짜보다 큰지 여부를 확인해야합니다.최대 절전 기준으로 날짜 유형을 변환하는 방법

criteria.add (Restrictions.lt ("award.deadline", "submission.date_received")));

그러나 다른 유형은 "java.lang.ClassCastException : java.lang.String을 java.util.Date로 형변환 할 수 없습니다"라는 문제를 일으키고 있습니다.

심지어 파서를 사용하여 파싱을 시도했지만 문자열로만 사용하고 있기 때문에 날짜로 사용하지 않습니다. 그래서, 당신은 어떻게 우리가 최대 절전 기준 내에서 하나의 날짜를 다른 유형으로 변환 할 수 있는지 말해 줄 수 있습니까?

답변

5

문제는 Restrictions.lt(String propertyName, Object value)이 잘못되었습니다. 필요한 것은 Restrictions.ltProperty(String propertyName, String otherPropertyName)입니다.

는 설명 :

  • Restrictions.lt(String propertyName, Object value)
  • Restrictions.ltProperty(String propertyName, String otherPropertyName)는 두 엔티티 속성

당신이 Restrictions.lt("Y", "X") 등을 사용하는 경우를 비교하는 것입니다 특정 값을 가진 개체의 속성을 비교하는 것입니다 "Y"는 것입니다 date 프로퍼티의 이름을 가지고 있다면, Hibernate는 "X"를 Date (컬럼 이름이 아닌)로 변환하려고 시도 할 것이고, "X"를 Date로 파싱하는 것은 약간 복잡하다고 할 수있다 - 예외가 발생한다.

+0

귀중한 답변은 고맙습니다. – dhiraj

관련 문제