Qual é a maneira correta de reconectar objetos desanexados no Hibernat

Tenho uma situação em que preciso reconectar objetos desanexados a uma sessão de hibernação, embora um objeto da mesma identidade PODE já existir na sessão, o que causará erro

gora, eu posso fazer uma de duas coisa

getHibernateTemplate().update( obj ) Isso funciona se e somente se um objeto ainda não existir na sessão de hibernação. Exceções são lançadas informando que um objeto com o identificador fornecido já existe na sessão quando eu precisar mais tard

getHibernateTemplate().merge( obj ) Isso funciona se e somente se houver um objeto na sessão de hibernação. Exceções são lançadas quando eu preciso que o objeto esteja em uma sessão mais tarde, se eu usar iss

Dado esses dois cenários, como anexar genericamente sessões a objetos? Não quero usar exceções para controlar o fluxo da solução desse problema, pois deve haver uma solução mais elegante ...

questionAnswers(30)

yourAnswerToTheQuestion