Salut,
hibernate 3.05
oracle 8.1.7
Pour mes tests, j'utilise un table simple non associée qui s'appelle: LIGNECDECLIENT. Cette table possede un attribut DATECREATION du type date. Elle est mappée dans ma classe avec un type Calendar. Je gère les brgin et commit dans une autre couche.
J'ai un problème de comparaison de date. Je veux récuperer toutes les lignes de commande qui ont une date == à ma date passée en paramètre.
Pour la date que je passe en paramètre, je devrais recupérer 4 lignes de commande. Je fait un System.out de idLigne pour afficher l'id des lignes.
Problème, je récupere bien 4 lignes de commandes, mais 3 fois la première et une fois la 3 iéme.
J'ai effectué mes tests avec l'api criteria et avec SQLQuery avec le meme résultat (voir code).
PS: Je récupère les bonnes lignes en sql classique.
Code:
public List getListeLigneCommandesClientByDateDay(String codeClient,Calendar daydate) {
List liste = new ArrayList();
try {
// String date = "07-JUN-05";
// String q ="select {lcc.*} from APISOFT_DOS_PROMATEX.LIGNECDECLIENT lcc "+
// "where lcc.DATELIVRAISON ='"+date+"'";
// SQLQuery query = PersistanceManager.getSession().createSQLQuery(q);
// query.addEntity("lcc",LigneCommandeClient.class);
// liste = query.list();
Criteria crit = PersistanceManager.getSession()
.createCriteria(LigneCommandeClient.class)
.add(Expression.eq("dateLivraison",daydate));
liste = crit.list();
// .createCriteria("commandeClient")
// .createCriteria("client")
// .add(Expression.eq("codeClient","GALISS"));*/
} catch (HibernateException e) {
e.printStackTrace();
}
return liste;
}