Problemas com cascade

Olá pessoal, meu problema é o seguinte?

tenho a seguinte situação Usuarios 1 <--------> 1 Clientes 1 <-------> * TelefonesClientes

Na mesma página altero o usuário, o clientes e adiciono, removo ou altero os telefones em um datatable editável do primefaces.

Para salvar tudo isso, estou dando um merge em usuarios, raciocinando que pela cascata seria salvo o usuário, o cliente e as alterações nos telefones
Para minha surpresa as alterações em telefones não foram salvas, e não consigo entender porque. Alguém poderia me ajudar???

Minha entidade Usuarios

@Entity
public class Usuarios implements Serializable {

//...

@OneToOne(cascade = CascadeType.ALL, mappedBy = "usuarios", fetch = FetchType.LAZY)
    private Clientes clientes = new Clientes();

//getters e setters

}

Minha entidade Clientes

@Entity
//...
public class Clientes implements Serializable {

//...

//É neste que está o problema
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "clientes", fetch = FetchType.LAZY)
    private List<TelefonesCliente> telefonesClienteList;
    @JoinColumn(name = "CLIENTES_ID_USUARIOS", referencedColumnName = "ID_USUARIOS")
    @OneToOne(optional = false, fetch = FetchType.LAZY)
    private Usuarios usuarios;
//Neste campo tudo certo 
    @JoinColumn(name = "CLIENTES_ID_CIDADES", referencedColumnName = "ID_CIDADES", nullable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Cidades cidades = new Cidades();

//getters e setters
}

[quote=clarinetabest]Olá pessoal, meu problema é o seguinte?

tenho a seguinte situação Usuarios 1 <--------> 1 Clientes 1 <-------> * TelefonesClientes

Na mesma página altero o usuário, o clientes e adiciono, removo ou altero os telefones em um datatable editável do primefaces.

Para salvar tudo isso, estou dando um merge em usuarios, raciocinando que pela cascata seria salvo o usuário, o cliente e as alterações nos telefones
Para minha surpresa as alterações em telefones não foram salvas, e não consigo entender porque. Alguém poderia me ajudar???

Minha entidade Usuarios

@Entity
public class Usuarios implements Serializable {

//...

@OneToOne(cascade = CascadeType.ALL, mappedBy = "usuarios", fetch = FetchType.LAZY)
    private Clientes clientes = new Clientes();

//getters e setters

}

Minha entidade Clientes

[code]
@Entity
//…
public class Clientes implements Serializable {

//…

//É neste que está o problema
@OneToMany(cascade = CascadeType.ALL, mappedBy = “clientes”, fetch = FetchType.LAZY)
private List telefonesClienteList;
@JoinColumn(name = “CLIENTES_ID_USUARIOS”, referencedColumnName = “ID_USUARIOS”)
@OneToOne(optional = false, fetch = FetchType.LAZY)
private Usuarios usuarios;
//Neste campo tudo certo
@JoinColumn(name = “CLIENTES_ID_CIDADES”, referencedColumnName = “ID_CIDADES”, nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Cidades cidades = new Cidades();

//getters e setters
}
[/code][/quote]

@OneToOne(optional = false, fetch = FetchType.LAZY) Este mapeamento tá certo ? é um para um mesmo ?

sim

E como você está chamando o merge/persist?