Entidade Produto
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Bean;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
*
* @author rh
*/
@Entity
@Table(name = "produto")
@NamedQueries({@NamedQuery(name = "Produto.findByCodProduto", query = "SELECT p FROM Produto p WHERE p.codProduto = :codProduto"), @NamedQuery(name = "Produto.findByProdDescricao", query = "SELECT p FROM Produto p WHERE p.prodDescricao = :prodDescricao"), @NamedQuery(name = "Produto.findByProdPrincativo", query = "SELECT p FROM Produto p WHERE p.prodPrincativo = :prodPrincativo"), @NamedQuery(name = "Produto.findByProdCultura", query = "SELECT p FROM Produto p WHERE p.prodCultura = :prodCultura"), @NamedQuery(name = "Produto.findByProdFabricante", query = "SELECT p FROM Produto p WHERE p.prodFabricante = :prodFabricante")})
public class Produto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "cod_produto", nullable = false)
// Annotation necessaria para campos auto increment quando utilizado hibernate
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer codProduto;
@Column(name = "prod_descricao", nullable = false)
private String prodDescricao;
@Column(name = "prod_princativo", nullable = false)
private String prodPrincativo;
@Column(name = "prod_cultura")
private String prodCultura;
@Column(name = "prod_fabricante")
private String prodFabricante;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codProduto")
private Collection<ProdutoFornecedor> produtoFornecedorCollection;
@JoinColumn(name = "tox_codigo", referencedColumnName = "tox_codigo")
@ManyToOne
private ClasseToxica toxCodigo;
@JoinColumn(name = "cod_classificacao", referencedColumnName = "cod_classificacao")
@ManyToOne
private Classificacao codClassificacao;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codProduto")
private Collection<Estoque> estoqueCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codProduto")
private Collection<MovimentacaoProduto> movimentacaoProdutoCollection;
public Produto() {
}
public Produto(Integer codProduto) {
this.codProduto = codProduto;
}
public Produto(Integer codProduto, String prodDescricao, String prodPrincativo) {
this.codProduto = codProduto;
this.prodDescricao = prodDescricao;
this.prodPrincativo = prodPrincativo;
}
public Integer getCodProduto() {
return codProduto;
}
public void setCodProduto(Integer codProduto) {
this.codProduto = codProduto;
}
public String getProdDescricao() {
return prodDescricao;
}
public void setProdDescricao(String prodDescricao) {
this.prodDescricao = prodDescricao;
}
public String getProdPrincativo() {
return prodPrincativo;
}
public void setProdPrincativo(String prodPrincativo) {
this.prodPrincativo = prodPrincativo;
}
public String getProdCultura() {
return prodCultura;
}
public void setProdCultura(String prodCultura) {
this.prodCultura = prodCultura;
}
public String getProdFabricante() {
return prodFabricante;
}
public void setProdFabricante(String prodFabricante) {
this.prodFabricante = prodFabricante;
}
public Collection<ProdutoFornecedor> getProdutoFornecedorCollection() {
return produtoFornecedorCollection;
}
public void setProdutoFornecedorCollection(Collection<ProdutoFornecedor> produtoFornecedorCollection) {
this.produtoFornecedorCollection = produtoFornecedorCollection;
}
public ClasseToxica getToxCodigo() {
return toxCodigo;
}
public void setToxCodigo(ClasseToxica toxCodigo) {
this.toxCodigo = toxCodigo;
}
public Classificacao getCodClassificacao() {
return codClassificacao;
}
public void setCodClassificacao(Classificacao codClassificacao) {
this.codClassificacao = codClassificacao;
}
public Collection<Estoque> getEstoqueCollection() {
return estoqueCollection;
}
public void setEstoqueCollection(Collection<Estoque> estoqueCollection) {
this.estoqueCollection = estoqueCollection;
}
public Collection<MovimentacaoProduto> getMovimentacaoProdutoCollection() {
return movimentacaoProdutoCollection;
}
public void setMovimentacaoProdutoCollection(Collection<MovimentacaoProduto> movimentacaoProdutoCollection) {
this.movimentacaoProdutoCollection = movimentacaoProdutoCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (codProduto != null ? codProduto.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Produto)) {
return false;
}
Produto other = (Produto) object;
if ((this.codProduto == null && other.codProduto != null) || (this.codProduto != null && !this.codProduto.equals(other.codProduto))) {
return false;
}
return true;
}
@Override
public String toString() {
return "Bean.Produto[codProduto=" + codProduto + "]";
}
}
Entidade Fornecedor
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Bean;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
*
* @author Josimar
*/
@Entity
@Table(name = "fornecedor")
@NamedQueries({@NamedQuery(name = "Fornecedor.findByCodFornecedor", query = "SELECT f FROM Fornecedor f WHERE f.codFornecedor = :codFornecedor"), @NamedQuery(name = "Fornecedor.findByFrnRazaosocial", query = "SELECT f FROM Fornecedor f WHERE f.frnRazaosocial = :frnRazaosocial"), @NamedQuery(name = "Fornecedor.findByFrnCnpj", query = "SELECT f FROM Fornecedor f WHERE f.frnCnpj = :frnCnpj"), @NamedQuery(name = "Fornecedor.findByFrnInscrestadual", query = "SELECT f FROM Fornecedor f WHERE f.frnInscrestadual = :frnInscrestadual"), @NamedQuery(name = "Fornecedor.findByFrnEmail", query = "SELECT f FROM Fornecedor f WHERE f.frnEmail = :frnEmail"), @NamedQuery(name = "Fornecedor.findByFrnTelefone", query = "SELECT f FROM Fornecedor f WHERE f.frnTelefone = :frnTelefone"), @NamedQuery(name = "Fornecedor.findByFrnNumero", query = "SELECT f FROM Fornecedor f WHERE f.frnNumero = :frnNumero"), @NamedQuery(name = "Fornecedor.findByFrnComplemento", query = "SELECT f FROM Fornecedor f WHERE f.frnComplemento = :frnComplemento")})
public class Fornecedor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "cod_fornecedor", nullable = false)
// Annotation necessaria para campos auto increment quando utilizado hibernate
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer codFornecedor;
@Column(name = "frn_razaosocial", nullable = false)
private String frnRazaosocial;
@Column(name = "frn_cnpj", nullable = false)
private String frnCnpj;
@Column(name = "frn_inscrestadual", nullable = false)
private String frnInscrestadual;
@Column(name = "frn_email")
private String frnEmail;
@Column(name = "frn_telefone")
private String frnTelefone;
@Column(name = "frn_numero")
private String frnNumero;
@Column(name = "frn_complemento")
private String frnComplemento;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codFornecedor")
private Collection<ProdutoFornecedor> produtoFornecedorCollection;
@JoinColumn(name = "log_codigo", referencedColumnName = "log_codigo")
@ManyToOne
private Logradouro logCodigo;
@OneToMany(mappedBy = "codFornecedor")
private Collection<Movimentacao> movimentacaoCollection;
public Fornecedor() {
}
public Fornecedor(Integer codFornecedor) {
this.codFornecedor = codFornecedor;
}
public Fornecedor(Integer codFornecedor, String frnRazaosocial, String frnCnpj, String frnInscrestadual) {
this.codFornecedor = codFornecedor;
this.frnRazaosocial = frnRazaosocial;
this.frnCnpj = frnCnpj;
this.frnInscrestadual = frnInscrestadual;
}
public Integer getCodFornecedor() {
return codFornecedor;
}
public void setCodFornecedor(Integer codFornecedor) {
this.codFornecedor = codFornecedor;
}
public String getFrnRazaosocial() {
return frnRazaosocial;
}
public void setFrnRazaosocial(String frnRazaosocial) {
this.frnRazaosocial = frnRazaosocial;
}
public String getFrnCnpj() {
return frnCnpj;
}
public void setFrnCnpj(String frnCnpj) {
this.frnCnpj = frnCnpj;
}
public String getFrnInscrestadual() {
return frnInscrestadual;
}
public void setFrnInscrestadual(String frnInscrestadual) {
this.frnInscrestadual = frnInscrestadual;
}
public String getFrnEmail() {
return frnEmail;
}
public void setFrnEmail(String frnEmail) {
this.frnEmail = frnEmail;
}
public String getFrnTelefone() {
return frnTelefone;
}
public void setFrnTelefone(String frnTelefone) {
this.frnTelefone = frnTelefone;
}
public String getFrnNumero() {
return frnNumero;
}
public void setFrnNumero(String frnNumero) {
this.frnNumero = frnNumero;
}
public String getFrnComplemento() {
return frnComplemento;
}
public void setFrnComplemento(String frnComplemento) {
this.frnComplemento = frnComplemento;
}
public Collection<ProdutoFornecedor> getProdutoFornecedorCollection() {
return produtoFornecedorCollection;
}
public void setProdutoFornecedorCollection(Collection<ProdutoFornecedor> produtoFornecedorCollection) {
this.produtoFornecedorCollection = produtoFornecedorCollection;
}
public Logradouro getLogCodigo() {
return logCodigo;
}
public void setLogCodigo(Logradouro logCodigo) {
this.logCodigo = logCodigo;
}
public Collection<Movimentacao> getMovimentacaoCollection() {
return movimentacaoCollection;
}
public void setMovimentacaoCollection(Collection<Movimentacao> movimentacaoCollection) {
this.movimentacaoCollection = movimentacaoCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (codFornecedor != null ? codFornecedor.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Fornecedor)) {
return false;
}
Fornecedor other = (Fornecedor) object;
if ((this.codFornecedor == null && other.codFornecedor != null) || (this.codFornecedor != null && !this.codFornecedor.equals(other.codFornecedor))) {
return false;
}
return true;
}
@Override
public String toString() {
return "Bean.Fornecedor[codFornecedor=" + codFornecedor + "]";
}
}
Entidade ProdutoFornecedor
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Bean;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
/**
*
* @author Josimar
*/
@Entity
@Table(name = "produto_fornecedor")
@NamedQueries({@NamedQuery(name = "ProdutoFornecedor.findByCodProdutoFornecedor", query = "SELECT p FROM ProdutoFornecedor p WHERE p.codProdutoFornecedor = :codProdutoFornecedor")})
public class ProdutoFornecedor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "cod_produto_fornecedor", nullable = false)
// Annotation necessaria para campos auto increment quando utilizado hibernate
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer codProdutoFornecedor;
@JoinColumn(name = "cod_produto", referencedColumnName = "cod_produto")
@ManyToOne
private Produto codProduto;
@JoinColumn(name = "cod_fornecedor", referencedColumnName = "cod_fornecedor")
@ManyToOne
private Fornecedor codFornecedor;
public ProdutoFornecedor() {
}
public ProdutoFornecedor(Integer codProdutoFornecedor) {
this.codProdutoFornecedor = codProdutoFornecedor;
}
public Integer getCodProdutoFornecedor() {
return codProdutoFornecedor;
}
public void setCodProdutoFornecedor(Integer codProdutoFornecedor) {
this.codProdutoFornecedor = codProdutoFornecedor;
}
public Produto getCodProduto() {
return codProduto;
}
public void setCodProduto(Produto codProduto) {
this.codProduto = codProduto;
}
public Fornecedor getCodFornecedor() {
return codFornecedor;
}
public void setCodFornecedor(Fornecedor codFornecedor) {
this.codFornecedor = codFornecedor;
}
@Override
public int hashCode() {
int hash = 0;
hash += (codProdutoFornecedor != null ? codProdutoFornecedor.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof ProdutoFornecedor)) {
return false;
}
ProdutoFornecedor other = (ProdutoFornecedor) object;
if ((this.codProdutoFornecedor == null && other.codProdutoFornecedor != null) || (this.codProdutoFornecedor != null && !this.codProdutoFornecedor.equals(other.codProdutoFornecedor))) {
return false;
}
return true;
}
@Override
public String toString() {
return "Bean.ProdutoFornecedor[codProdutoFornecedor=" + codProdutoFornecedor + "]";
}
}
Trecho do codigo onde eu tento fazer a Alteração.
beanClassificacao = new Classificacao();
beanClasseToxica = new ClasseToxica();
beanFornecedor = new Fornecedor();
Comum comum = new Comum();
EntityManager manager = null;
try {
if (jtfProduto.getText().equals("") || jtfPrincipio.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Campos em negrito não podem ser vazios!", "Advertência", JOptionPane.WARNING_MESSAGE);
} else {
manager = Conexao.getConexao();
beanClassificacao = manager.find(Classificacao.class, listaClassificacao.get(jcbClassificacao.getSelectedIndex()).getCodClassificacao());
beanClasseToxica = manager.find(ClasseToxica.class, listaClasseToxica.get(jcbClasseToxica.getSelectedIndex()).getToxCodigo());
beanFornecedor = manager.find(Fornecedor.class, listaFornecedor.get(jcbFornecedor.getSelectedIndex()).getCodFornecedor());
beanProduto.setCodClassificacao(beanClassificacao);
beanProduto.setToxCodigo(beanClasseToxica);
beanProduto.setProdDescricao(jtfProduto.getText());
beanProduto.setProdPrincativo(jtfPrincipio.getText());
beanProduto.setProdCultura(jtfCultura.getText());
beanProduto.setProdFabricante(jtfFabricante.getText());
beanProdutoFornecedor.setCodProduto(beanProduto);
beanProdutoFornecedor.setCodFornecedor(beanFornecedor);
manager.getTransaction().begin();
Conexao.Alterar(beanProduto, beanProdutoFornecedor);
jbAlterar.setEnabled(false);
jbExcluir.setEnabled(false);
manager.getTransaction().commit();
comum.clearComponent(this);
}
} catch (Exception ex) {
manager.getTransaction().rollback();
JOptionPane.showMessageDialog(null, ex);
Logger.getLogger(FrmProduto.class.getName()).log(Level.SEVERE, null, ex);
}
Metodo que faz a Alteração
public static void Alterar(Object objeto1, Object objeto2) throws Exception {
EntityManager manager = null;
try {
if (JOptionPane.showConfirmDialog(null, "Confirma Alteração ?", "Alerta !", JOptionPane.WARNING_MESSAGE) == 0) {
manager = Conexao.getConexao();
manager.getTransaction().begin();
manager.merge(objeto1);
manager.merge(objeto2);
manager.getTransaction().commit();
}
} catch (Exception e) {
manager.getTransaction().rollback();
e.printStackTrace();
throw new Exception("Erro ao Alterar" + e);
}
}