Ho seguito il tuo consiglio. Ho scritto il seguente codice

codice:
....
	@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);
	}
e questo

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);
			}
			
			
		}
Il problem è che alcuni campi (Definiti Timestamp) cambiano valore aggiungendoSI i millisecondi senza che questi siano presenti nel DB...



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