JPA...Campo de relacionamento nulo ?porque?

1 resposta
P

Olá,

uma duvida pois gerei as tabelas via objeto
mas na tabela Nota_Fiscal_Item criou o campo id_nota que se relaciona com a tabela nota
mas está nulo ???

o que será que aconteceu ???

alguém pode me ajudar

abs

--
og4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Hibernate: 
    insert 
    into
        Nota_Fiscal
        (nome) 
    values
        (?)
Hibernate: 
    insert 
    into
        Nota_Fiscal_Item
        (id_nota, qtdeItem, seqItem) 
    values
        (?, ?, ?)
Hibernate: 
    insert 
    into
        Nota_Fiscal_Item
        (id_nota, qtdeItem, seqItem) 
    values
        (?, ?, ?)
Gravação ok....


---
public class TesteNF {
	private static EntityManagerFactory factory = null;
	private static EntityManager manager = null;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection itens = new HashSet();
		NFItem item1 = new NFItem();
		NF n = new NF();
		n.setNome("Nota SP");
		
		item1 = new NFItem();
		item1.setSeqItem(1);
		item1.setQtdeItem(10);
		
		NFItem item2 = new NFItem();
		item2 = new NFItem();
		item2.setSeqItem(2);
		item2.setQtdeItem(30);
		
		n.setItens(new HashSet<NFItem>());
		n.getItens().add(item1);
		n.getItens().add(item2);
		
		
		factory = Persistence.createEntityManagerFactory("JPA9");
		manager = factory.createEntityManager();
		EntityTransaction transaction = manager.getTransaction();
		transaction.begin();
		manager.persist(n);
		transaction.commit();
		manager.close();
		
		System.out.println("Gravação ok....");
	}

}


---
CREATE TABLE `nota_fiscal` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
---

CREATE TABLE `nota_fiscal_item` (
  `id` int(11) NOT NULL auto_increment,
  `qtdeItem` int(11) default NULL,
  `seqItem` int(11) default NULL,
  `id_nota` int(11) default NULL,
  PRIMARY KEY  (`id`),
  KEY `FKBC05DA4341B2D632` (`id_nota`),
  CONSTRAINT `FKBC05DA4341B2D632` FOREIGN KEY (`id_nota`) REFERENCES `nota_fiscal` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
----
import java.util.Collection;
import java.util.HashSet;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="Nota_Fiscal")
public class NF {
	
	@Id
	@GeneratedValue
	//@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column
	private int id;
	@Column
	private String nome;
	
	
	@OneToMany(targetEntity=NFItem.class ,mappedBy="nota",fetch=FetchType.EAGER, cascade =javax.persistence.CascadeType.ALL)
	private Collection<NFItem> itens ;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Collection<NFItem> getItens() {
		return itens;
	}
	public void setItens(Collection<NFItem> itens) {
---
@Entity
@Table( name="Nota_Fiscal_Item")
public class NFItem {
	
	
	@Id
	@GeneratedValue
	@Column
    private int id;
	
	@Column
	private int seqItem;
	
	@Column
	private int qtdeItem;

	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id_nota")
	private NF nota;
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getSeqItem() {
		return seqItem;
	}

	public void setSeqItem(int seqItem) {
		this.seqItem = seqItem;
	}

	public int getQtdeItem() {
		return qtdeItem;
	}

	public void setQtdeItem(int qtdeItem) {
		this.qtdeItem = qtdeItem;
	}
	
	
}

1 Resposta

P

Help…não sei mas o que fazer já fix de tudo mas a fk criada na tabela itens fica com o campo null

O que será não tem explicação ???

Criado 5 de dezembro de 2008
Ultima resposta 5 de dez. de 2008
Respostas 1
Participantes 1