Pessoal, estou com o seguinte problema
na minha classe Predio tenho um relacionamento para apartamentos
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name="Predio_Apartamento",
joinColumns = {@JoinColumn(name = "ano"), @JoinColumn(name = "numero") },
inverseJoinColumns={@JoinColumn(name = "id_apartamento")})
private List<Apartamento> apartamentos;
na classe Apartamento tenho uma lista dos quartos deste apartamento
@OneToMany(fetch = FetchType.EAGER , cascade= CascadeType.REMOVE)
@OrderBy(value = "id")
private List<Quarto> quartos = new ArrayList<Quarto>();
Quando eu dou um select em um prédio no log do mysql ele executa um delete e um insert em todos os objetos da s listas
segue o log abaixo:
insert into quarto (comprimento, largura) values (2, 3)
3184 Query delete from Apartamento_Quartowhere apartamento_id=480
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1383)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1384)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1386)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1392)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1395)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1396)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1397)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1398)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1399)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1400)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1401)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1402)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1403)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1404)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1405)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1406)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1407)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1410)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1411)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1448)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1468)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1485)
3184 Query insert into Apartamento_Quarto(apartamento_id, quarto_id) values (480, 1486)
3184 Query delete from Predio_Apartamento where ano=2008 and numero=3
3184 Query insert into Predio_Apartamento (ano, numero, id_apartamento) values (2008, 3, 480)
3184 Query delete from Predio_Apartamento where ano=2008 and numero=1
3184 Query insert into Predio_Apartamento (ano, numero, id_apartamento) values (2008, 1, 478)
3184 Query delete from Predio_Apartamento where ano=2008 and numero=2
3184 Query insert into Predio_Apartamento (ano, numero, id_apartamento) values (2008, 2, 471)
3184 Query insert into Predio_Apartamento (ano, numero, id_apartamento) values (2008, 2, 472)
3184 Query insert into Predio_Apartamento (ano, numero, id_apartamento) values (2008, 2, 479)
3184 Query delete from Predio_Apartamento where ano=2008 and numero=4
3184 Query insert into Predio_Apartamento (ano, numero, id_apartamento) values (2008, 4, 481)
3184 Query commit
Alguém já passou por isso ou já viu algo parecido?
Saberiam me explicar esse comportamento do hibernate?
andei vasculhando os forúns do hibernate e não encontrei nada.
de antemão obrigado.