Olá pessoal.
Possuo um usuário que está associado a um endereço e a uma lista de telefones. Consigo salvar normalmente o primeiro usuario relacionado com seu endereço e telefones. Entretanto quando vou incluir um novo usuário, o endereço e a lista de telefones é sobreposta pelos dados do último usuário cadastrado continuando com o mesmo ID. Os dados do objeto usuário continuam intactos e o ID do usuário é incrementado normalmente.
Estou utilizando hibernate para configurar e criar o banco de dados.
As associações estão sendo realizadas assim:
Classe Usuario:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Usuario implements java.io.Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id_usuario")
    private Long idUsuario;
    @Column
    @OneToOne(cascade = {CascadeType.ALL})
    private Endereco endereco;
    @Column
    @ManyToMany(cascade = {CascadeType.ALL})
    private Set<Telefone> telefones;
   // get & set
}Classe Endereco:
@Entity
public class Endereco implements java.io.Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id_endereco")
    private Long idEndereco;
   // get & set
}Classe Telefone:
@Entity
public class Telefone implements java.io.Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id_telefone")
    private Long idTelefone;
    @ManyToMany(mappedBy = "telefones", fetch = FetchType.LAZY)
    @Cascade(CascadeType.SAVE_UPDATE)
    private Set<Usuario> usuario;
  //get & set
}Agradeço toda ajuda.
