Dados não são salvos em relacionamento @OneToOne

Boa tarde pessoal

Estou modelando um sistema onde tenho uma lista de Declarações, e dentro da lista cada Declaração contém um atributo do tipo ValorApurado.

Pois bem, fiz o mapeamento usando @OneToOne e deixei o Hibernate criar as tabelas, a tabela referente a Declaração é criada e populada sem problemas, porém a tabela referente a ValorApurado é criada mas permanece vazia (mesmo eu tendo certeza que a maioria das declarações tem o objeto setado).

Segue o código:

CLASSE DECLARACAO

@Entity
@Table(name="tb_Declaracao")
public class Declaracao implements Serializable{
	private static final long serialVersionUID = -2141565628622828255L;
	private int id;
        private ValorApurado valorApurado;

	@Id
	@GeneratedValue
	@Column(name = "id", nullable = false)
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

       @OneToOne(mappedBy="declaracao")
	public ValorApurado getValorApurado() {
		return valorApurado;
	}

	public void setValorApurado(ValorApurado valorApurado) {
		this.valorApurado = valorApurado;
	}
}

CLASSE VALORAPURADO

@Entity
@Table(name="tb_ValorApurado")
public class ValorApurado implements Serializable{
	private static final long serialVersionUID = -8534301299976781952L;
	private int id;
        private Declaracao declaracao;

	@Id
	@GeneratedValue
	@Column(name = "id", nullable = false)
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
	@JoinColumn(name = "IdDec")
	public Declaracao getDeclaracao() {
		return declaracao;
	}
	public void setDeclaracao(Declaracao declaracao) {
		this.declaracao = declaracao;
	}
}

Estou usando Hibernate 3.X e MySQL.

Alguém pode me dar uma luz?

Abraços

Existem dois modos dos dados serem persistidos corretamente.

Ou você faz:entityManager.persist(a); entityManager.persist(b); a.setB(b); b.setA(a);

Ou você faz por casacade.

Aqui mostra como utilizar o cascade: JPA: Mini Livro - Primeiros passos e conceitos detalhados.

Alterei o get da classe Declaracao e ainda assim a estrutura da tabela é criada porém os dados não são inseridos.

Eu estou tentando evitar o uso do EntityManager por “restrições” dentro da empresa.

        @OneToOne(mappedBy="declaracao",cascade = CascadeType.PERSIST)
	public ValorApurado getValorApurado() {
		return valorApurado;
	}

Alguma sugestão a mais?