estou com um grande problema em minha aplicação e estou com uma grande dificuldade de conseguir ver o problema e tentar resolver, vou postar a parte problemática e explicar o problema abaixo:
EnderecoClientes.class
@Entity
@Table(name="cf_enderecoclientes", schema="cf")
public class EnderecoClientes implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id_enderecoclientes")
private Integer idEnderecoClientes;
@OneToOne(fetch=FetchType.EAGER)
@Cascade(CascadeType.ALL)
@JoinColumn(name="id_setor")
private Setor setor;
//getters e setters
}
no formulário de cadastro de clientes tenho a opção de adicionar vários endereços, como se pode ver os endereços contem um setor, ai é que está o problema, quando tento cadastrar 2 endereços diferentes para o mesmo setor recebo a mensagem abaixo:
como posso fazer para resolver esse problema?
estou batendo um pouco de cabeça aqui.
estou fazendo como me orientaram a primeira vez criei uma tabela de relacionamento entre os clientes e endereços, porem podem haver endereços diferentes de um mesmo setor.
fiz o teste com @ManyToOne e deu o mesmo problema.
narciso.benigno, realmente nãp precisava do cascade para all.
existe algum lugar que posso buscar as diferenças entre os tipos e em qual situação usar?
[quote=thiago.fernandes]fala galera consegui, obrigado pela ajuda.
narciso.benigno, realmente nãp precisava do cascade para all.
existe algum lugar que posso buscar as diferenças entre os tipos e em qual situação usar?
att,[/quote]
Eu não sei se entendi sua pergunta, mas se você está querendo encontrar os endereços com com algum tipo de setor você terá que escrever uma hql do tipo “from EnderecoClientes as ec where ec.setor.id = :id”, é esta sua duvida?
eu estava tentando fazer um update, porem o sistema lançava uma exception no mapeamento de setores, dizendo que já existia um objeto identido na memória, mas consegui resoler removendo o cascade.all