Prezados,
Tenho uma aplicação onde tenho dois beans, Elemento e outro Cidade. Um elemento se relaciona com uma cidade, quando coleto os meus elementos, o mesmo vem com seguinte nome ex.:
BHE-A25
preciso entao criar um objeto elemento e dentro dele um objeto cidade com as tres primeiras letras do nome acima, essas letras são a chave primária da cidade, a lista de elementos possui varios elementos da mesma cidade, quando vou persistir dou um saveorupdate na cidade e depois no meu elemento, porém estou tendo um problema, vejam o codigo:
for (Shelf s : shelves) {
s.setModel(model);
HibernateCore.beginTransaction();
//Salvo a cidade
daoCity.getDaoGeneric().saveOrUpdate(s.getCity());
// Salvo o elemento
daoShelf.getDaoGeneric().saveOrUpdate(s);
HibernateCore.commitTransaction();
}
Erro:
Exception in thread "main" org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [br.com.model.City#BHE]
at org.hibernate.engine.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:590)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:284)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:223)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:89)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at br.com.dao.Dao.saveOrUpdate(Dao.java:45)
at br.com.gvt.seaccess.unem.ShelfDatabaseMilegate.insertShelfDatabase(ShelfDatabaseMilegate.java:36)
at sendemailelement.Main.main(Main.java:39)
Java Result: 1
Att,
Paulo