Galera estou quebrando a cabeça nisso…
Como faço no meu table model quando tenho 2 campos que são chave estrangeira de outras tabelas?
exemplos, na minha classe pedidos: tenho estoque e clientes que são o ID.
[code]import java.io.Serializable;
import javax.persistence.Basic;
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 Caio Fernando
*/
@Entity
@Table(name = “pedidos”)
@NamedQueries({
@NamedQuery(name = “Pedidos.findAll”, query = “SELECT p FROM Pedidos p”),
@NamedQuery(name = “Pedidos.findByIdPedidos”, query = “SELECT p FROM Pedidos p WHERE p.idPedidos = :idPedidos”),
@NamedQuery(name = “Pedidos.findByCliente”, query = “SELECT p FROM Pedidos p WHERE p.cliente = :cliente”),
@NamedQuery(name = “Pedidos.findByProduto”, query = “SELECT p FROM Pedidos p WHERE p.produto = :produto”),
@NamedQuery(name = “Pedidos.findByQnt”, query = “SELECT p FROM Pedidos p WHERE p.qnt = :qnt”),
@NamedQuery(name = “Pedidos.findByValor”, query = “SELECT p FROM Pedidos p WHERE p.valor = :valor”),
@NamedQuery(name = “Pedidos.findByData”, query = “SELECT p FROM Pedidos p WHERE p.data = :data”),
@NamedQuery(name = “Pedidos.findByStatus”, query = “SELECT p FROM Pedidos p WHERE p.status = :status”),
@NamedQuery(name = “Pedidos.findByPago”, query = “SELECT p FROM Pedidos p WHERE p.pago = :pago”)})
public class Pedidos implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = “IdPedidos”)
private Integer idPedidos;
@Basic(optional = false)
@Column(name = “Cliente”)
private String cliente;
@Basic(optional = false)
@Column(name = “Produto”)
private String produto;
@Basic(optional = false)
@Column(name = “Qnt”)
private int qnt;
@Basic(optional = false)
@Column(name = “Valor”)
private float valor;
@Basic(optional = false)
@Column(name = “Data”)
private String data;
@Basic(optional = false)
@Column(name = “Status”)
private String status;
@Basic(optional = false)
@Column(name = “Pago”)
private String pago;
@JoinColumn(name = “CodProduto”, referencedColumnName = “code”)
@ManyToOne(optional = false)
private Estoque estoque;
@JoinColumn(name = “CodCliente”, referencedColumnName = “IdCliente”)
@ManyToOne(optional = false)
private Clientes clientes;public Pedidos() {
}public Pedidos(Integer idPedidos) {
this.idPedidos = idPedidos;
}public Pedidos(Integer idPedidos, String cliente, String produto, int qnt, float valor, String data, String status, String pago) {
this.idPedidos = idPedidos;
this.cliente = cliente;
this.produto = produto;
this.qnt = qnt;
this.valor = valor;
this.data = data;
this.status = status;
this.pago = pago;
}public Integer getIdPedidos() {
return idPedidos;
}public void setIdPedidos(Integer idPedidos) {
this.idPedidos = idPedidos;
}public String getCliente() {
return cliente;
}public void setCliente(String cliente) {
this.cliente = cliente;
}public String getProduto() {
return produto;
}public void setProduto(String produto) {
this.produto = produto;
}public int getQnt() {
return qnt;
}public void setQnt(int qnt) {
this.qnt = qnt;
}public float getValor() {
return valor;
}public void setValor(float valor) {
this.valor = valor;
}public String getData() {
return data;
}public void setData(String data) {
this.data = data;
}public String getStatus() {
return status;
}public void setStatus(String status) {
this.status = status;
}public String getPago() {
return pago;
}public void setPago(String pago) {
this.pago = pago;
}public Estoque getEstoque() {
return estoque;
}public void setEstoque(Estoque estoque) {
this.estoque = estoque;
}public Clientes getClientes() {
return clientes;
}public void setClientes(Clientes clientes) {
this.clientes = clientes;
}@Override
public int hashCode() {
int hash = 0;
hash += (idPedidos != null ? idPedidos.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 Pedidos)) {
return false;
}
Pedidos other = (Pedidos) object;
if ((this.idPedidos == null && other.idPedidos != null) || (this.idPedidos != null && !this.idPedidos.equals(other.idPedidos))) {
return false;
}
return true;
}@Override
public String toString() {
return “sistema.Objetos.Pedidos[idPedidos=” + idPedidos + “]”;
}
}[/code]
Porém não sei como setar o valor no meu table model.
[code]public Object getValueAt(int linha, int coluna) {
Pedidos p = (Pedidos) pedidos.get(linha);
switch (coluna){
case 0:
return p.getIdPedidos();
case 1:
return p.getCliente();
case 2:
return p.getProduto();
case 3:
return p.getQnt();
case 4:
return p.getValor();
case 5:
return p.getData();
case 6:
return p.getStatus();
case 7:
return p.getPago();
case 8:
return p.getClientes();
case 9:
return p.getEstoque();
default:
return "";
}
}
@Override
public void setValueAt(Object valor, int linha, int coluna) {
Pedidos p = (Pedidos) pedidos.get(linha);
switch(coluna){
case 0:
p.setIdPedidos(Integer.parseInt(valor.toString()));
break;
case 1:
p.setCliente(valor.toString());
break;
case 2:
p.setProduto(valor.toString());
break;
case 3:
p.setQnt(Integer.parseInt(valor.toString()));
break;
case 4:
p.setStatus(valor.toString());
break;
case 5:
p.setData((valor.toString()));
break;
case 6:
p.setStatus(valor.toString());
break;
case 7:
p.setPago(valor.toString());
break;
case 8:
p.setClientes(null);// aqui ele pede um objeto do tipo cliente
break;
case 9:
p.setEstoque(null);// aqui ele pede um objeto do tipo estoque
break;
}
fireTableDataChanged();
}[/code]