Olá,
estou tentando converter DAO para JPA e estou com algumas duvidas
meu problema é como passar o codigo  da nota fiscal que gera como auto incremento
no banco para tabela nota fiscal item conforme os fontes abaixo
se alguém puder me ajudar e se estou fazendo certo …
e o que está faltando para funcionar…
---script execucao
public static void main(String[] args) throws InterruptedException {
	Collection<NotaFiscalItem> itens= new ArrayList<NotaFiscalItem>();  
    BaseDao1<NotaFiscal> dao = new BaseDao1<NotaFiscal>();
    
    NotaFiscal n = new NotaFiscal();
    n.setDtemissao("11/11/2008");
    n.setDtsaida("11/11/2008");
    n.setNrcnpj("1234567890");
    
    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);
    
    
  
    
    dao.create(n);
  }
--
@Entity
public class NotaFiscal {
    @Id
    private int nrnota;
	private String dtemissao;
	private String dtsaida;
    private String nrcnpj;
    
    @OneToMany
    private Collection<NotaFiscalItem> itens;
    
	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 Collection<NotaFiscalItem> getItens() {
		return itens;
	}
	public void setItens(Collection<NotaFiscalItem> itens) {
		this.itens = itens;
	}
		 
}
----
@Entity
public class NotaFiscalItem {
	@Id
	private int iditem;
	private int nrnota; 
	private int nritemnota;
	private int codproduto;
	private int qtdproduto;
	
	@ManyToOne (cascade=CascadeType.PERSIST)
	@JoinColumn(name="nrnota")
	private NotaFiscal nota;
	
	public int getNrnota() {
		return nrnota;
	}
	public void setNrnota(int nrnota) {
		this.nrnota = nrnota;
	}
	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 int getIditem() {
		return iditem;
	}
	public void setIditem(int iditem) {
		this.iditem = iditem;
	}
	public NotaFiscal getNota() {
		return nota;
	}
	public void setNota(NotaFiscal nota) {
		this.nota = nota;
	}
	
	
}
----
public class BaseDao1<T> {
  
  private static EntityManagerFactory emf;
  private EntityManager em;
  public BaseDao1() {
    emf = Persistence.createEntityManagerFactory("pu2");
    em = emf.createEntityManager();
  }
  public boolean create(T obj) {
    em.getTransaction().begin();
    try {
      em.persist(obj);
      em.getTransaction().commit();
      return true;
    }
    catch (Exception e) {
      e.printStackTrace();
      em.getTransaction().rollback();
      return false;
    }
  } 
}
--------------
[TopLink Info]: 2008.11.12 10:59:45.749--ServerSession(18055655)--TopLink, version: Oracle TopLink Essentials - 2006.8 (Build 060830)
[TopLink Info]: 2008.11.12 10:59:46.938--ServerSession(18055655)--file:/D:/workspace_patt/Sushibar-pu2 login successful
java.lang.IllegalArgumentException: Object: bar.model.NotaFiscal@7eb6e2 is not a known entity type.
	at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:3178)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:170)
	at bar.persistence.BaseDao1.create(BaseDao1.java:20)
	at bar.client.Client1.main(Client1.java:43)
        