Folks,
estou querendo converter DAO para Hibernate e estou com umas duvidas
e queria ver se estou no caminho certo .
E estou tentando configurar no Hibernate nota fiscal X nota fiscal item e pintou umas duvidas :
-
quando gero a notafiscal o numero da nota é automatico como pego esse numero
e passo para geração notafiscalitem , na classe GerenciadorNotaFiscal como criar o metodo pra tratar essa situação gravar a nota e depois item da nota -
e se o que montei está certo ou se existe outra forma de fazer como estou fazendo testes
gostaria de saber o certo pra fazer a conversão de DAO para Hibernate
Se alguém puder me ajudar …agradeceria
abs
--
public class TestaNotaFiscal {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
NotaFiscal nota = new NotaFiscal();
nota.setDtemissao("05/11/2008");
nota.setDtsaida("05/11/2008");
nota.setNrcnpj("123456789");
NotaFiscalItem item = new NotaFiscalItem();
item.setCodproduto(10);
item.setNritemnota(1);
item.setQtdproduto(100);
GerenciadorNotaFiscal g = new GerenciadorNotaFiscal();
g.salvaNotaFiscal(nota,item);
}
}
--
public class GerenciadorNotaFiscal {
public void salvaNotaFiscal (NotaFiscal nota,NotaFiscalItem item){
try{
SessionFactory sf = new Configuration().configure("br/com/uso/model/hibernate.cfg.xml").buildSessionFactory();
Session s = sf.openSession();
Transaction tx = s.beginTransaction();
tx.commit();
s.close();
System.out.println("Categoria Incluido");
}catch(Exception e){
System.out.println("Erro ="+e);
}
}
--
--NotaFiscal.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="br.com.uso.model.NotaFiscal" table="notafiscal">
<id name="nrnota" column="nrnota" type="int">
<generator class="native"/>
</id>
<property name="dtemissao"/>
<property name="dtsaida"/>
<property name="nrcnpj"/>
<set name="itens" table="notafiscalitem" >
<key column="nrnota"/>
<one-to-many class=" br.com.uso.model.NotaFiscalItem"/>
</set>
</class>
</hibernate-mapping>
-----
DROP TABLE IF EXISTS `loja`.`notafiscal`;
CREATE TABLE `loja`.`notafiscal` (
`nrnota` int(10) unsigned NOT NULL auto_increment,
`dtemissao` varchar(10) NOT NULL,
`dtsaida` varchar(10) NOT NULL,
`nrcnpj` varchar(45) NOT NULL,
PRIMARY KEY (`nrnota`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
----------
DROP TABLE IF EXISTS `loja`.`notafiscalitem`;
CREATE TABLE `loja`.`notafiscalitem` (
`nrnota` int(10) unsigned NOT NULL, // referencia com o numero da nota
`nritemnota` int(10) unsigned NOT NULL, // numero do item da nota
`codproduto` int(10) unsigned NOT NULL,
`qtdproduto` int(10) unsigned NOT NULL,
`iditem` int(10) unsigned NOT NULL auto_increment, // codigo automatico da tabela
PRIMARY KEY (`iditem`),
KEY `FK_notafiscalitem_1` (`nrnota`),
CONSTRAINT `FK_notafiscalitem_1` FOREIGN KEY (`nrnota`) REFERENCES `notafiscal` (`nrnota`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
------
public class NotaFiscal {
private int nrnota;
private String dtemissao;
private String dtsaida;
private String nrcnpj;
Set item = new HashSet();
public int getNrnota() {
return nrnota;
}
public void setNrnota(int nrnota) {
this.nrnota = nrnota;
}
public String getDtemissao() {
return dtemissao;
}
public void setDtemissao(String dtemissao) {
this.dtemissao = dtemissao;
}
public String getDtsaida() {
return dtsaida;
}
public void setDtsaida(String dtsaida) {
this.dtsaida = dtsaida;
}
public String getNrcnpj() {
return nrcnpj;
}
public void setNrcnpj(String nrcnpj) {
this.nrcnpj = nrcnpj;
}
public Set getItem() {
return item;
}
public void setItem(Set item) {
this.item = item;
}
---