ai galera olha eu denovo com dificuldade no hibernate , gostaria que alguem desse uma olhada nas minhas classes e
nos meus mapeamentos pois tenho duvidas nesta parte de 1…n,n…n, n…1
e na questao de declarar os sets nas classes esta certinho esses meus arquivos.java?
pois eu tenho um sistema que estou desenvolvendo neste mesmo padrao e esta dando um erro de duplicacao de campo no relacionamento
se alguem puder ajudar fico mto grato.
cliente.java
package model;
public class Cliente {
private int codigo;
private String nome;
private Pedido pedido;
public Cliente(){
}
public Pedido getpedido() {
return pedido;
}
public void setpedido(Pedido pedido) {
this.pedido = pedido;
}
public void setCodigo(int codigo)
{
this.codigo = codigo;
}
public void setNome(String nome)
{
this.nome = nome;
}
public int getCodigo()
{
return this.codigo;
}
public String getNome()
{
return this.nome;
}
}
Pedido.java
package model;
import java.util.Collections;
public class Pedido {
private int codigoPedido;
private int codigoCliente;
private Double total;
private Collections Cliente;
public Pedido(){}
public int getcodigoPedido() {
return codigoPedido;
}
public void setCodigoProduto(int codigoPedido) {
this.codigoPedido = codigoPedido;
}
public int getCodigoCliente() {
return codigoCliente;
}
public void setCodigoCliente(int codigoCliente) {
this.codigoCliente = codigoCliente;
}
public Double getTotal() {
return total;
}
public void setTotal(Double total) {
this.total = total;
}
public Collections getCliente() {
return Cliente;
}
public void setCliente(Collections cliente) {
Cliente = cliente;
}
}
cliente.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.Cliente" table="cliente">
<id name="codigo"></id>
<property name="nome"/>
<set name="Pedido">
<key column="codigo"/>
<one-to-many class="model.Pedido"/>
</set>
</class>
</hibernate-mapping>
Pedido.hbm.xml
<?<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.Pedido" table="pedido">
<id name="codigoPedido"></id>
<property name="total"/>
<many-to-one name="codigoCliente"
class="model.cliente"/>
</class>
</hibernate-mapping>
sessao.java
package model;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Sessao {
public class OpenSessao{
private static SessionFactory factory;
public OpenSessao(){
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
return factory.openSession();
}
}
}
inserir.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="org.hibernate.Session"%>
<%@page import="org.hibernate.*"%>
<%@page import="model.OpenSessao" %>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=ISO-8859-1">
<jsp:useBean id="c" class="model.Cliente" />
<jsp:useBean id="cc" class="model.Pedido" />
<title>Insert title here</title>
</head>
<body>
<%
Sessao op = new Sessao();
Session sessao = Sessao.getSession();
Transaction transaction = sessao.beginTransaction();
c.setCodigo(1);
c.setNome("teste");
cc.setCodigoCliente(1);
cc.setCodigoProduto(c.getCodigo());
cc.setTotal(2.00);
out.println(c.getNome());
sessao.save(c);
sessao.save(cc);
transaction.commit();
sessao.close();
%>
</body>
</html>