2009-11-30 3 views
2

날짜 형식으로 열 형식이있는 MySQL 테이블이 있습니다. 내 절전 매핑 파일에서이 열을 java.util.Date에 매핑했습니다. 이제 HQL에서 날짜 평등을 기반으로 객체를 검색하는 동안 new Date()를 사용하여 Date를 설정하면 결과가 표시되지 않습니다. 시간, 분 및 초를 0으로 설정하여 날짜를 정규화하면 결과가 나타납니다. SQL 칼럼 타입을 Date가 아닌 Timestamp로 선언했기 때문에 이것이 필요합니까?최대 절전 모드 HQL 및 날짜

답변

2

는 희망이 날짜 평등 문제와 함께 당신을 도울 것입니다

java.sql.Date

을보십시오.

RDJ

+0

매핑 유형에서? – Abhi

+0

"날짜와 같은 열 유형이있는 MySQL 테이블이 있습니다. 내 최대 절전 모드 매핑 파일에서이 열을 java.util.Date 유형으로 매핑했습니다. 대신 java.sql.Date를 시도하십시오. – Richie

+0

감사합니다. 그게 효과가 있지만 열 유형이 Date 일 때도 java.util.date 유형으로 작동하지 않는 이유는 무엇입니까? 그것이 타임 스탬프라면 나는 이해하지만 Date를 사용하면이 일이 나를 당황하게합니다. – Abhi

0

내가 명시 적으로 @type 설정하여 SQL Server 날짜 열이 java.util.Date을 사용할 수 있었다 : 주석없이

@Type(type="date") 
public java.util.Date getDate() { 
    return date; 
} 

를 내가지고 있다고

java.lang.IllegalArgumentException : 타임 스탬프의 형식은, yyyy-mm-ddhh : mm : ss [.fffffffff]가 아니면 안된다.

최대 절전 모드 3.5.1- 최종

+0

JPA를 사용하면'@Temporal (DATE)'을 사용하게되어 있다고 생각합니다. –

+0

@Temporal (TemporalType.DATE)도 저에게 효과적입니다. 여기에 몇 가지 문서가 있습니다 : http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#entity-mapping-property 그게 더 표준적인 것처럼 보입니다 - 감사합니다, Pascal ! – Andrew