olá pessoal, td bem??
Estou com um problema no mínimo estranho pra mim… mas vamos lá:
até semana passada, eu fazia o relacionamento nas classes dessa forma:
[code]@Entity
@Table(name = “estados”)
public class Estado implements Serializable {
private static final long serialVersionUID = -5582648910303813488L;
@Id
@GeneratedValue
private Long id;
private String sigla;
private String nome;
private cidade_id_cidade;
private cliente_id_cliente;
private empresa_id_empresa;[/code]
aí, segundo recomendações e explicações dos colegas eu corrigi e estou usando assim:
[code]@Entity
@Table(name = “estados”)
public class Estado implements Serializable {
private static final long serialVersionUID = -5582648910303813488L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ESTADO_ID")
private Long id;
@Column(name = "sigla")
private String sigla;
@Column(name = "nome")
private String nome;
@OneToMany(mappedBy = "estado", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Cidade> cidades = new ArrayList<Cidade>();
@OneToMany(mappedBy = "estado", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Cliente> clientes = new ArrayList<Cliente>();
@OneToMany(mappedBy = "estado", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Empresa> empresas = new ArrayList<Empresa>();[/code]
O problema é que agora, se eu mando excluir um registro, ele faz um efeito dominó e sai apagando tudo que se relaciona com ele.
Antes isso não acontecia, então me leva a crer que o problema seja meu relacionamento… mas por vi das dúvidas, vou postar o código da exclusão no bean e na pagina.
[code] public String excluir(ActionEvent event) {
System.out.println("Excluindo: " + cliente.getId());
UIComponent link = event.getComponent();
UIParameter param = (UIParameter) link.findComponent(“excluir”);
Long id = (Long) param.getValue();
Session session = HibernateUtil.currentSession();
Dao<Cliente> clienteDao = new Dao<Cliente>(session, Cliente.class);
this.cliente = clienteDao.load(id);
clienteDao.delete(this.cliente);
this.cliente = new Cliente();
return "excluido";
}[/code]
<h:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<h:commandButton value="Excluir" actionListener="#{clienteBean.excluir}" />
<f:param id="excluir" name="id" value="#{f.id}"/>
</h:column>
Se alguem souber o q pode ser, agradeço. Se precisar de mais detalhes é só pedir.
Flws