Ho seguito il tuo consiglio. Ho scritto il seguente codice
e questocodice:.... @Override public boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof Utenti)) return false; Utenti ut = (Utenti)obj; return UtilityVarie.confrontaOggetti.uguale(this.abilitato, ut.abilitato) && UtilityVarie.confrontaOggetti.uguale(this.cognome, ut.cognome) && UtilityVarie.confrontaOggetti.uguale(this.data_abilitazione, ut.data_abilitazione) && UtilityVarie.confrontaOggetti.uguale(this.data_cambio_passwd, ut.data_cambio_passwd) && UtilityVarie.confrontaOggetti.uguale(this.data_disabilitazione, ut.data_disabilitazione) && UtilityVarie.confrontaOggetti.uguale(this.data_inserimento, ut.data_inserimento) && UtilityVarie.confrontaOggetti.uguale(this.data_ultimo_login, ut.data_ultimo_login) && UtilityVarie.confrontaOggetti.uguale(this.data_variazione, ut.data_variazione) && UtilityVarie.confrontaOggetti.uguale(this.login_inserimento, ut.login_inserimento) && UtilityVarie.confrontaOggetti.uguale(this.login_variazione, ut.login_variazione) && UtilityVarie.confrontaOggetti.uguale(this.nome, ut.nome) && UtilityVarie.confrontaOggetti.uguale(this.passwd, ut.passwd) && UtilityVarie.confrontaOggetti.uguale(this.tipo, ut.tipo) && UtilityVarie.confrontaOggetti.uguale(this.utente, ut.utente) && UtilityVarie.confrontaOggetti.uguale(this.verifica, ut.verifica); }
Il problem è che alcuni campi (Definiti Timestamp) cambiano valore aggiungendoSI i millisecondi senza che questi siano presenti nel DB...codice:public static class confrontaOggetti { public static boolean uguale(String a, String b) { return a==b; } public static boolean uguale(Boolean a, Boolean b) { return a=b; } public static boolean uguale(java.sql.Timestamp a, java.sql.Timestamp b) { return a == null ? b == null : a.equals(b); } public static boolean uguale(Object a, Object b) { return a == null ? b == null : a.equals(b); } }
codice:private List<Utenti> thelist; private Utenti current, old_current; public void refreshUi() { UtentiDAO pdao = (UtentiDAO)SpringUtil.getBean("UtentiDAO"); Tabbox tbox = (Tabbox)getFellow("tbox"); tbox.setSelectedIndex(0); thelist = pdao.findAll(); if (thelist.isEmpty() == false ) setCurrent(thelist.iterator().next()); <<<------------ !!!!!! E' qui il problema binder.loadAll(); } public void setCurrent(Utenti cur) { this.current= cur; }
Il campo Data_variazione prima del setCurrent è: 08/12/2010 08:47:03.0
Dopo il set Current (che è il campo nel DB) è: 08/12/2010 08:47:03.557
E' un problema di casting, oppure di JdbcTemplate, oppure sono un pistola?
Grazie

Rispondi quotando