Oi pessoal,
A minha aplicação possui um bean com a seguinte estrutura:
public class Stand implements Serializable{
private code;
private name;
// métodos set e get
}
possui a seguinte lógica para atualizar um registro na tabela:
Session session = null;
Transaction tx = null;
session = HibernateSessionFactory.currentSession();
tx = session.beginTransaction();
Stand dbStand = (Stand) session.get(Stand.class, valueStand.getCode());
if (dbStand != null) {
dbStand.setName(valueStand.getName());
session.update(dbStand);
}
tx.commit();
Até aqui tudo bem, pois quando verifico a tabela, a atualização é feita corretamente.
O problema ocorre quando em outro ponto da aplicação, eu tento recuperar o valor da propriedade “name”.
Por exemplo, na tabela eu possuo apenas um registro, assim:
code = 1
name = EXPOMUSIC 2007
Quanto eu mando atualizar para “EXPOMUSIC 2008”, no mysql fica “EXPOMUSIC 2008” (o último valor), mas usando a rotina abaixo para recuperar o valor, ora o valor de name é “EXPOMUSIC 2007” e ora é “EXPOMUSIC 2008”, ou seja, nunca assume apenas um valor:
Session session = null;
Transaction tx = null;
session = HibernateSessionFactory.currentSession();
tx = session.beginTransaction();
StringBuffer sbfQuery = new StringBuffer();
sbfQuery.append(" SELECT s FROM Stand AS s “);
sbfQuery.append(” WHERE s.code = ‘" + key + "’");
sbfQuery.append(" ORDER BY s.code");
Stand tmpStand = tmpStand = (Stand)session.createQuery(sbfQuery.toString()).uniqueResult();
System.out.println(tmpStand.getName()); // às vezes retorna “EXPOMUSIC 2007” e às vezes retorna “EXPOMUSIC 2008”.
tx.commit();
Alguém já teve este tipo de problema ? Teria alguma dica ??
Obrigado
