2009-11-30 3 views
2

J'ai une table MySQL avec un type de colonne comme Date. Dans mon fichier de mappage d'hibernation, j'ai mappé cette colonne pour taper java.util.Date. Maintenant, dans HQL tout en essayant de récupérer des objets basés sur l'égalité des dates, je n'obtiens aucun résultat si je définis la date en utilisant la nouvelle date(). Si je normalise la date en mettant les heures, les minutes et les secondes à zéro, j'obtiens des résultats. Est-ce nécessaire puisque j'ai déclaré que le type de colonne SQL est une date et non un horodatage?Hibernate HQL et Date

Répondre

2

Essayez java.sql.Date

Espérons que cela vous aidera avec la question de l'égalité de date.

RDJ

+0

Dans le type de mappage? – Abhi

+0

"J'ai une table MySQL avec l'un des types de colonne en tant que Date Dans mon fichier de mise en correspondance hibernate j'ai mappé cette colonne pour taper java.util.Date" - à la place, essayez java.sql.Date – Richie

+0

Merci. Cela fonctionne mais, avez-vous une idée pourquoi cela ne fonctionne pas avec le type java.util.date même lorsque le type de colonne est Date? Si c'est Timestamp je comprends, mais avec Date cette chose me déroute. – Abhi

0

J'ai pu utiliser java.util.Date avec une colonne Date SQL Server en définissant explicitement l'@Type:

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

Sans l'annotation, je recevais

java.lang.IllegalArgumentException: le format d'horodatage doit être aaaa-mm-jj hh: mm: ss [.fffffffff]

avec Hibernate 3.5.1-final

+0

Avec JPA, je pense que vous êtes censé utiliser '@Temporal (DATE)' –

+0

@Temporal (TemporalType.DATE) fonctionne aussi pour moi. Il y a de la documentation ici: http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#entity-mapping-property qui donne l'impression que c'est plus standard - merci, Pascal ! – Andrew

Questions connexes