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:
Alguém tem uma idéia de como resolver isso?..
Segue minhas class:
Equipamento.java
[code]@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;
}
…
…
…[/code]
OpcaoEquipamento.java
@Entity
public class OpcaoEquipamento extends CiaEntity {
...
...
...
@Id
@GeneratedValue(generator = "sequence")
@GenericGenerator(name = "sequence", strategy = "increment")
public Long getId() {
return super.getId();
}
...
...
...
Equipamento_OpcaoEquipamento.java
@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