Folks,
estou tentando converter um DAO para Hibernate e estou apanhando …
O que estou tentando fazer gerar uma nota fiscal e tem um campo autoincremento e esse campo passar para nota fiscal item …
Não sei se estou fazendo certo ou comendo bola mas apresentou o erro abaixo
se alguém puder me ajudar agradeceria…
abs
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Erro =Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
Nota = 5
---
public static void main(String[] args) {
// TODO Auto-generated method stub
Set itens= new HashSet();
GerenciadorNota dao = new GerenciadorNota();
NotaFiscal n = new NotaFiscal();
n.setDtemissao("12/11/2008");
n.setDtsaida("13/11/2008");
n.setNrcnpj("11234567890");
NotaFiscalItem i = new NotaFiscalItem();
i.setNritemnota(1);
i.setCodproduto(10);
i.setQtdproduto(100);
itens.add(i);
i= new NotaFiscalItem();
i.setNritemnota(2);
i.setCodproduto(20);
i.setQtdproduto(500);
itens.add(i);
n.setItens(itens);
//gera Nota Fiscal
dao.salvarNotaFiscal(n);
System.out.println("Nota = "+n.getNrnota());
}
---
public class NotaFiscal {
private int nrnota;
private String dtemissao;
private String dtsaida;
private String nrcnpj;
private Set itens = 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 getItens() {
return itens;
}
public void setItens(Set itens) {
this.itens = itens;
}
----
public class NotaFiscalItem {
private int fknrnota;
private int nritemnota;
private int codproduto;
private int qtdproduto;
private NotaFiscal notaFiscal;
public int getFknrnota() {
return fknrnota;
}
public void setFknrnota(int fknrnota) {
this.fknrnota = fknrnota;
}
public int getNritemnota() {
return nritemnota;
}
public void setNritemnota(int nritemnota) {
this.nritemnota = nritemnota;
}
public int getCodproduto() {
return codproduto;
}
public void setCodproduto(int codproduto) {
this.codproduto = codproduto;
}
public int getQtdproduto() {
return qtdproduto;
}
public void setQtdproduto(int qtdproduto) {
this.qtdproduto = qtdproduto;
}
public NotaFiscal getNotaFiscal() {
return notaFiscal;
}
public void setNotaFiscal(NotaFiscal notaFiscal) {
this.notaFiscal = notaFiscal;
}
}
---NotaFiscal.hbm.xml
<hibernate-mapping>
<class name="br.com.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 = "fknrnota"/>
<one-to-many class="br.com.model.NotaFiscalItem"/>
</set>
</class>
</hibernate-mapping>
---NotaFiscalItem.hm.xml
<hibernate-mapping>
<class name="br.com.model.NotaFiscalItem" table="notafiscalitem">
<id name="fknrnota" column="fknrnota" type="int">
</id>
<property name="nritemnota"/>
<property name="codproduto"/>
<property name="qtdproduto"/>
</class>
</hibernate-mapping>
-------------------
<session-factory>
<!--Database connection setting -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1/loja</property>
<property name="connection.username">root</property>
<property name="connection.password">xxxx</property>
<!--JDBC connection pool(use built-in)-->
<property name="connection.pool_size">1</property>
<!--SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all execute SQL to stdout-->
<property name="show_sql">false</property>
<mapping resource="br/com/model/NotaFiscal.hbm.xml"/>
<mapping resource="br/com/model/NotaFiscalItem.hbm.xml"/>
</session-factory>