Dúvida Hibernate - update e delete só funciona se eu forçar um commit, pq?

Fala feras :smiley:

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;

Seu banco de dados é oracle ?

Christian

geralmente so forçando commit sim… porem, existe como deixar conexões em auto-commit…

que no fim, pra vc q ta programando no nivel la de cima, parece que não é preciso forçar o commit

Já conheçe o Full Hibernate Plugin que injeta a Sessão e a Transação Hibernate e fecha e commita ambas, respectivamente, automaticamente ao final da requisição?

Olá pessoal,

aproveitando o forum aki to com o seguinte problema,
na hora que eu fazer um delete naum sei porque, mas os campos que eu defino como nullable = false
ele naum deleta, ele da um erro falando que o tal campo é not null e naum deleta

pq isso??

obrigado

Tanto no Hibernate como no JPA os métodos “delete” só podem ser aplicados a entidades válidas.

O Motivo? Pergunta para os criadores dessas tecnologias rsrsrsrsr.

Se quiser excluir sem que o objetos esteja válido, só via HQL (Hibernate) ou JPQL (JPA).

[quote=Andr?Heidi Moriya]Olá pessoal,

aproveitando o forum aki to com o seguinte problema,
na hora que eu fazer um delete naum sei porque, mas os campos que eu defino como nullable = false
ele naum deleta, ele da um erro falando que o tal campo é not null e naum deleta

pq isso??

obrigado[/quote]

Tu define que ele é not null
mais no banco ele ta como not null?
tu criou ele junto com o hibernate?!

Amigo, independente do caso dessa entidade… o Hibernate só exclui se o objeto estiver válido (todos os “not null” da vida preenchidos). Faça o teste e comprove.

Opa!

Fala povo!

Estou com esse problema alguém sabe como resolver???

mesmo diretório

cfg.xml ==
hbm.xml

Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Could not parse mapping