Fala feras 
Tenho uma app rodando com struts2 e meus objetos ‘filhos’ somente são atualizados se eu forçar um commit no método:
public T update(T object) {
try
{
session = InitSessionFactory.getInstance().getCurrentSession();
Transaction tx = session.beginTransaction();
session.merge(object);
tx.commit();
} catch (Exception ex) {
logger.error("Erro ao atualizar objeto: [ " + classe.getSimpleName() + " ]", ex);
}
return object;
}
Se eu não chamar o Transaction, o update só é feito no objeto pai e não no filho. E se eu deixar dessa maneira, ele acaba zuando o objeto filho pq se eu não exibir algum dado na tela, ele seta pra null aquele valor e faz update nele. Alguém sabe o pq de ocorrer isso?
Segue meu mapeamento:
Objeto ‘Pai’
@OneToOne(mappedBy = "usuarioTO", fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
private ValidacaoLoginTO validacaoLoginTO;
Objeto ‘Filho’
@OneToOne()
@JoinColumn(name="Empleados_ID_EMPLEADOS")
@Cascade(CascadeType.ALL)
private UsuarioTO usuarioTO;