Fala galerinha...
O que eu to fazendo é o seguinte:
No meu sistema tem um cadastro de mapas(localidade onde fica um equipamento) e dentro desse mapa são cadastrados equipamentos.... 1 ou mais...
Esses equipamentos possuem alguma opções a serem selecionadas no momento do cadastro, ou mesmo em uma edição posterior.
O meu problema está sendo o seguinte, quando eu cadastro, por exemplo, 3 equipamentos, os mesmos me gerariam 6 opções cadastradas. As chaves dessas opcoes seriam 1,2,3,4,5,6. Quando eu deleto o equipamento 2, as chaves 3 e 4 são apagadas, permanecendo 1,2,5,6 no bd... até aí tudo bem.
Eu exporto esses dados para um XML(para uma mudança de bd ou backup) e ele exporta corretamente, somente as chaves 1,2,5,6. Porém quando eu deleto meu banco e vou importar esses dados do XML a chave fica da seguinte maneira: 1,2,3,4... ou seja... ele atualiza as chaves de maneira sequencial e quando o hibernate procura pela chave 5 ele me gera e seguinte exception:
javax.persistence.EntityNotFoundException: Unable to find model.OpcaoEquipamento with id 5
Alguém tem uma idéia de como resolver isso?...
Segue minhas class:
Equipamento.java@Entity
public class Equipamento extends Elemento {
...
...
...
@OneToMany(targetEntity = OpcaoEquipamento.class)
@Cascade( { CascadeType.ALL, CascadeType.DELETE_ORPHAN })
@LazyCollection(value = LazyCollectionOption.FALSE)
public Set<OpcaoEquipamento> getOpcoes() {
return opcoes;
}
public void setOpcoes(Set<OpcaoEquipamento> opcao) {
this.opcoes = opcao;
}
...
...
...
@Entity
public class OpcaoEquipamento extends CiaEntity {
...
...
...
@Id
@GeneratedValue(generator = "sequence")
@GenericGenerator(name = "sequence", strategy = "increment")
public Long getId() {
return super.getId();
}
...
...
...
@Entity
public class Equipamento_OpcaoEquipamento extends CiaEntity {
...
...
...
@Id
private long opcoes_id;
private long equipamento_id;
...
...
...
Acho que é isso...
To quebrando a cabeça com isso... =S
[]'s