Caros, estou estudando o hibernate (JPA), e gostaria de uma dica para o problema abaixo.
Já pesquisei a documentação, fiz algumas alterações, sem sucesso até o momento.
Tenho uma estrutura de classes análoga ao exemplo seguinte.
Assim, consigo inserir pedidos, items, relacionar um cliente ao pedido etc.
Mas…
- Quando deleto um pedido, os items permancem na base de dados (órfaos);
- Consigo deletar um cliente que já esteja relacionado a um pedido (o que não poderia ocorrer), quebrando a integridade;
Falta alguma anotação específica, ou são necessários relacionamentos bidirecionais para solucionar essas falhas??
[code]
@Entity
public class Pedido {
private long pedido_id;
private Cliente cliente;
private List<ItemPedido> items;
//...
@Id
@GeneratedValue
public long getPedido_id {
return pedido_id;
}
@OneToOne(cascade = { CascadeType.PERSIST })
public Cliente getCliente() {
return cliente;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "PEDIDO_ID")
public List<ItemPedido> getItems() {
return items;
}
//...
}
@Entity
public class ItemPedido {
private long itemPedido_id;
//...
@Id
@GeneratedValue
public long itemPedido_id() {
return itemPedido_id;
}
//...
}
@Entity
public class Cliente {
private long cliente_id;
//...
@Id
@GeneratedValue
public long getCliente_id {
return cliente_id;
}
//...
}[/code]
Obrigado.