Boa tarde Pessoal,
estou tentando fazer uma consulta utilizando jpa, com duas tabelas.
Hist_Consolidado_2014
tmp
onde
tenho em ambas o campo id, porem não são chaves em nenhuma das duas tabelas.
Estou tentando fazer da seguinte maneira
private List<Hist_Consolidado_2014> consultar(String pLogin,String pCondicao){
String vLogin = null;
EntityManager entityManager = getEntityManager();
String vSQL = " a from Hist_Consolidado_2014 a";
vSQL += " join Tmp_Ntc b ";
//vSQL += " a.num_ntc = b.num_ntc";
int vPos = pLogin.indexOf("-");
if (vPos != -1){
vLogin = pLogin.substring(0, vPos-2);
vSQL += " WHERE b.NUM_LOGIN = '"+vLogin+"'";
}
if (pCondicao != null){
vSQL += " AND " + pCondicao;
}
vSQL += " ORDER BY a.NUM_ID";
System.out.println("Consulta executada : " + vSQL);
Query vQuery = entityManager.createQuery(vSQL);
@SuppressWarnings("unchecked")
List<Hist_Consolidado_2014> listaHist = vQuery.getResultList();
return listaHist;
}
Alguem poderia me ajudar, pois não conheço como jazer join’s em jpa.
grato galera.
Aqui mostra como fazer join: http://uaihebert.com/?p=1137
Desculpe incomodar,
Mais estava lendo mais não consegui entender como funciona.
Alterei a minha classe de Model das duas tabela para relacionar as tabelas que fazem join.
package com.br.model;
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.Table;
@Entity
@Table(name="Tmp_Ntc")
public class Tmp_Ntc {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
int COD_NTC;
@Column
String NUM_LOGIN;
@Column
String NUM_NTC;
@JoinColumn(name="NUM_NTC")
public int getCOD_NTC() {
return COD_NTC;
}
public void setCOD_NTC(int cOD_NTC) {
COD_NTC = cOD_NTC;
}
public String getNUM_NTC() {
return NUM_NTC;
}
public void setNUM_NTC(String nUM_NTC) {
NUM_NTC = nUM_NTC;
}
public String getLOGIN() {
return NUM_LOGIN;
}
public void setLOGIN(String lOGIN) {
NUM_LOGIN = lOGIN;
}
}
package com.br.model;
import java.util.Date;
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.Table;
@Entity @Table(name="Hist_Consolidado_2014")
public class Hist_Consolidado_2014 {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
int NUM_ID;
@Column
Date DAT_CARGA;
@Column
Date DAT_ATIV;
@Column
String NUM_NTC;
@Column
String DSC_TIPO_OPER;
@Column
String DSC_PLANO;
@Column
String COD_MOBILE;
@Column
String DSC_MES_REF;
@Column
String SIT_PGTO;
@Column
float VLR_PGTO;
@Column
String COD_IRREG;
@Column
String DSC_EXTRATOR;
@Column
String DSC_CANAL;
@Column
String dSC_STATUS;
@Column
float VLR_AJUSTE;
@Column
String NUM_SIMCARD;
@Column
String SIT_DEB_CRE;
@Column
String DSC_PENDENCIA;
@Column
String DSC_REGIONAL;
@Column
String DSC_QUINZENA;
@Column
String DSC_STATUS_DOC;
@Column
String DSC_PRODUTO;
@Column
Date DAT_ESTORNO;
@Column
float VLR_FRANQUIA;
@Column
String COD_REGIONAL;
@Column
String SIT_EXCECAO;
@Column
String DSC_EXCECAO;
@Column
String COD_MOBILE_EXTRATO;
@Column
String DSC_REGIONAL_FI;
@Column
float VLR_COMISSAO_VPC;
@Column
String DSC_EVENTO_ATV;
@Column
String COD_VENDEDOR;
@Column
float VLR_RECARGA;
@Column
String DSC_MOTIVO;
@Column
String DSC_REDE;
@Column
Date DAT_VENC_FATURA;
@Column
String DSC_TP_APURACAO;
@Column
String COD_SAP_APAR;
@Column
float VLR_COMPRA;
@Column
String DSC_DADOS;
@Column
float VLR_ICMS_COMPRA;
@Column
float VLR_ICMS_VENDA;
@Column
String NUM_IMEI;
@Column
float VLR_MARGEM;
@Column
String DSC_MODELO;
@Column
String DSC_OFERTA;
@Column
float VLR_VENDA;
@Column
float VLR_JUROS;
@Column
String NUM_LOTE_PGTO;
@Column
float VLR_CLARO_CLUBE;
@Column
String DSC_TRUECOMP;
@Column
String DSC_EXCECAO_TC;
@Column
String ORDER_ID;
@Column
String ACCOUNT_ID;
@Column
String DSC_REGULARIZACAO;
@JoinColumn(name="NUM_NTC")
public int getNUM_ID() {
return NUM_ID;
}
public void setNUM_ID(int nUM_ID) {
NUM_ID = nUM_ID;
}
public Date getDAT_CARGA() {
return DAT_CARGA;
}
public void setDAT_CARGA(Date dAT_CARGA) {
DAT_CARGA = dAT_CARGA;
}
public Date getDAT_ATIV() {
return DAT_ATIV;
}
public void setDAT_ATIV(Date dAT_ATIV) {
DAT_ATIV = dAT_ATIV;
}
public String getNUM_NTC() {
if (NUM_NTC == null){
return "";
}else{
return NUM_NTC;
}
}
public void setNUM_NTC(String nUM_NTC) {
NUM_NTC = nUM_NTC;
}
public String getDSC_TIPO_OPER() {
if (DSC_TIPO_OPER == null){
return "";
}else{
return DSC_TIPO_OPER;
}
}
public void setDSC_TIPO_OPER(String dSC_TIPO_OPER) {
DSC_TIPO_OPER = dSC_TIPO_OPER;
}
public String getDSC_PLANO() {
if (DSC_PLANO == null){
return "";
}else{
return DSC_PLANO;
}
}
public void setDSC_PLANO(String dSC_PLANO) {
DSC_PLANO = dSC_PLANO;
}
public String getCOD_MOBILE() {
if (COD_MOBILE == null){
return "";
}else{
return COD_MOBILE;
}
}
public void setCOD_MOBILE(String cOD_MOBILE) {
COD_MOBILE = cOD_MOBILE;
}
public String getDSC_MES_REF() {
if (DSC_MES_REF == null){
return "";
}else{
return DSC_MES_REF;
}
}
public void setDSC_MES_REF(String dSC_MES_REF) {
DSC_MES_REF = dSC_MES_REF;
}
public String getSIT_PGTO() {
if (SIT_PGTO == null){
return "";
}else{
return SIT_PGTO;
}
}
public void setSIT_PGTO(String sIT_PGTO) {
SIT_PGTO = sIT_PGTO;
}
public float getVLR_PGTO() {
return VLR_PGTO;
}
public void setVLR_PGTO(float vLR_PGTO) {
VLR_PGTO = vLR_PGTO;
}
public String getCOD_IRREG() {
if (COD_IRREG == null){
return "";
}else{
return COD_IRREG;
}
}
public void setCOD_IRREG(String cOD_IRREG) {
COD_IRREG = cOD_IRREG;
}
public String getDSC_EXTRATOR() {
if (DSC_EXTRATOR == null){
return "";
}else{
return DSC_EXTRATOR;
}
}
public void setDSC_EXTRATOR(String dSC_EXTRATOR) {
DSC_EXTRATOR = dSC_EXTRATOR;
}
public String getDSC_CANAL() {
if (DSC_CANAL == null){
return "";
}else{
return DSC_CANAL;
}
}
public void setDSC_CANAL(String dSC_CANAL) {
DSC_CANAL = dSC_CANAL;
}
public String getdSC_STATUS() {
if (dSC_STATUS == null){
return "";
}else{
return dSC_STATUS;
}
}
public void setdSC_STATUS(String dSC_STATUS) {
this.dSC_STATUS = dSC_STATUS;
}
public float getVLR_AJUSTE() {
return VLR_AJUSTE;
}
public void setVLR_AJUSTE(float vLR_AJUSTE) {
VLR_AJUSTE = vLR_AJUSTE;
}
public String getNUM_SIMCARD() {
if (NUM_SIMCARD == null){
return "";
}else{
return NUM_SIMCARD;
}
}
public void setNUM_SIMCARD(String nUM_SIMCARD) {
NUM_SIMCARD = nUM_SIMCARD;
}
public String getSIT_DEB_CRE() {
if (SIT_DEB_CRE == null){
return "";
}else{
return SIT_DEB_CRE;
}
}
public void setSIT_DEB_CRE(String sIT_DEB_CRE) {
SIT_DEB_CRE = sIT_DEB_CRE;
}
public String getDSC_PENDENCIA() {
if (DSC_PENDENCIA == null){
return "";
}else{
return DSC_PENDENCIA;
}
}
public void setDSC_PENDENCIA(String dSC_PENDENCIA) {
DSC_PENDENCIA = dSC_PENDENCIA;
}
public String getDSC_REGIONAL() {
if (DSC_REGIONAL == null){
return "";
}else{
return DSC_REGIONAL;
}
}
public void setDSC_REGIONAL(String dSC_REGIONAL) {
DSC_REGIONAL = dSC_REGIONAL;
}
public String getDSC_QUINZENA() {
if (DSC_QUINZENA == null){
return "";
}else{
return DSC_QUINZENA;
}
}
public void setDSC_QUINZENA(String dSC_QUINZENA) {
DSC_QUINZENA = dSC_QUINZENA;
}
public String getDSC_STATUS_DOC() {
if (DSC_STATUS_DOC == null){
return "";
}else{
return DSC_STATUS_DOC;
}
}
public void setDSC_STATUS_DOC(String dSC_STATUS_DOC) {
DSC_STATUS_DOC = dSC_STATUS_DOC;
}
public String getDSC_PRODUTO() {
if (DSC_PRODUTO == null){
return "";
}else{
return DSC_PRODUTO;
}
}
public void setDSC_PRODUTO(String dSC_PRODUTO) {
DSC_PRODUTO = dSC_PRODUTO;
}
public Date getDAT_ESTORNO() {
return DAT_ESTORNO;
}
public void setDAT_ESTORNO(Date dAT_ESTORNO) {
DAT_ESTORNO = dAT_ESTORNO;
}
public float getVLR_FRANQUIA() {
return VLR_FRANQUIA;
}
public void setVLR_FRANQUIA(float vLR_FRANQUIA) {
VLR_FRANQUIA = vLR_FRANQUIA;
}
public String getCOD_REGIONAL() {
if (COD_REGIONAL == null){
return "";
}else{
return COD_REGIONAL;
}
}
public void setCOD_REGIONAL(String cOD_REGIONAL) {
COD_REGIONAL = cOD_REGIONAL;
}
public String getSIT_EXCECAO() {
if (SIT_EXCECAO == null){
return "";
}else{
return SIT_EXCECAO;
}
}
public void setSIT_EXCECAO(String sIT_EXCECAO) {
SIT_EXCECAO = sIT_EXCECAO;
}
public String getDSC_EXCECAO() {
if (DSC_EXCECAO == null){
return "";
}else{
return DSC_EXCECAO;
}
}
public void setDSC_EXCECAO(String dSC_EXCECAO) {
DSC_EXCECAO = dSC_EXCECAO;
}
public String getCOD_MOBILE_EXTRATO() {
if (COD_MOBILE_EXTRATO == null){
return "";
}else{
return COD_MOBILE_EXTRATO;
}
}
public void setCOD_MOBILE_EXTRATO(String cOD_MOBILE_EXTRATO) {
COD_MOBILE_EXTRATO = cOD_MOBILE_EXTRATO;
}
public String getDSC_REGIONAL_FI() {
if (DSC_REGIONAL_FI == null){
return "";
}else{
return DSC_REGIONAL_FI;
}
}
public void setDSC_REGIONAL_FI(String dSC_REGIONAL_FI) {
DSC_REGIONAL_FI = dSC_REGIONAL_FI;
}
public float getVLR_COMISSAO_VPC() {
return VLR_COMISSAO_VPC;
}
public void setVLR_COMISSAO_VPC(float vLR_COMISSAO_VPC) {
VLR_COMISSAO_VPC = vLR_COMISSAO_VPC;
}
public String getDSC_EVENTO_ATV() {
if (DSC_EVENTO_ATV == null){
return "";
}else{
return DSC_EVENTO_ATV;
}
}
public void setDSC_EVENTO_ATV(String dSC_EVENTO_ATV) {
DSC_EVENTO_ATV = dSC_EVENTO_ATV;
}
public String getCOD_VENDEDOR() {
if (COD_VENDEDOR == null){
return "";
}else{
return COD_VENDEDOR;
}
}
public void setCOD_VENDEDOR(String cOD_VENDEDOR) {
COD_VENDEDOR = cOD_VENDEDOR;
}
public float getVLR_RECARGA() {
return VLR_RECARGA;
}
public void setVLR_RECARGA(float vLR_RECARGA) {
VLR_RECARGA = vLR_RECARGA;
}
public String getDSC_MOTIVO() {
if (DSC_MOTIVO == null){
return "";
}else{
return DSC_MOTIVO;
}
}
public void setDSC_MOTIVO(String dSC_MOTIVO) {
DSC_MOTIVO = dSC_MOTIVO;
}
public String getDSC_REDE() {
if (DSC_REDE == null){
return "";
}else{
return DSC_REDE;
}
}
public void setDSC_REDE(String dSC_REDE) {
DSC_REDE = dSC_REDE;
}
public Date getDAT_VENC_FATURA() {
return DAT_VENC_FATURA;
}
public void setDAT_VENC_FATURA(Date dAT_VENC_FATURA) {
DAT_VENC_FATURA = dAT_VENC_FATURA;
}
public String getDSC_TP_APURACAO() {
if (DSC_TP_APURACAO == null){
return "";
}else{
return DSC_TP_APURACAO;
}
}
public void setDSC_TP_APURACAO(String dSC_TP_APURACAO) {
DSC_TP_APURACAO = dSC_TP_APURACAO;
}
public String getCOD_SAP_APAR() {
if (COD_SAP_APAR == null){
return "";
}else{
return COD_SAP_APAR;
}
}
public void setCOD_SAP_APAR(String cOD_SAP_APAR) {
COD_SAP_APAR = cOD_SAP_APAR;
}
public float getVLR_COMPRA() {
return VLR_COMPRA;
}
public void setVLR_COMPRA(float vLR_COMPRA) {
VLR_COMPRA = vLR_COMPRA;
}
public String getDSC_DADOS() {
if (DSC_DADOS == null){
return "";
}else{
return DSC_DADOS;
}
}
public void setDSC_DADOS(String dSC_DADOS) {
DSC_DADOS = dSC_DADOS;
}
public float getVLR_ICMS_COMPRA() {
return VLR_ICMS_COMPRA;
}
public void setVLR_ICMS_COMPRA(float vLR_ICMS_COMPRA) {
VLR_ICMS_COMPRA = vLR_ICMS_COMPRA;
}
public float getVLR_ICMS_VENDA() {
return VLR_ICMS_VENDA;
}
public void setVLR_ICMS_VENDA(float vLR_ICMS_VENDA) {
VLR_ICMS_VENDA = vLR_ICMS_VENDA;
}
public String getNUM_IMEI() {
if (NUM_IMEI == null){
return "";
}else{
return NUM_IMEI;
}
}
public void setNUM_IMEI(String nUM_IMEI) {
NUM_IMEI = nUM_IMEI;
}
public float getVLR_MARGEM() {
return VLR_MARGEM;
}
public void setVLR_MARGEM(float vLR_MARGEM) {
VLR_MARGEM = vLR_MARGEM;
}
public String getDSC_MODELO() {
if (DSC_MODELO == null){
return "";
}else{
return DSC_MODELO;
}
}
public void setDSC_MODELO(String dSC_MODELO) {
DSC_MODELO = dSC_MODELO;
}
public String getDSC_OFERTA() {
if (DSC_OFERTA == null){
return "";
}else{
return DSC_OFERTA;
}
}
public void setDSC_OFERTA(String dSC_OFERTA) {
DSC_OFERTA = dSC_OFERTA;
}
public float getVLR_VENDA() {
return VLR_VENDA;
}
public void setVLR_VENDA(float vLR_VENDA) {
VLR_VENDA = vLR_VENDA;
}
public float getVLR_JUROS() {
return VLR_JUROS;
}
public void setVLR_JUROS(float vLR_JUROS) {
VLR_JUROS = vLR_JUROS;
}
public String getNUM_LOTE_PGTO() {
if (NUM_LOTE_PGTO == null){
return "";
}else{
return NUM_LOTE_PGTO;
}
}
public void setNUM_LOTE_PGTO(String nUM_LOTE_PGTO) {
NUM_LOTE_PGTO = nUM_LOTE_PGTO;
}
public float getVLR_CLARO_CLUBE() {
return VLR_CLARO_CLUBE;
}
public void setVLR_CLARO_CLUBE(float vLR_CLARO_CLUBE) {
VLR_CLARO_CLUBE = vLR_CLARO_CLUBE;
}
public String getDSC_TRUECOMP() {
if (DSC_TRUECOMP == null){
return "";
}else{
return DSC_TRUECOMP;
}
}
public void setDSC_TRUECOMP(String dSC_TRUECOMP) {
DSC_TRUECOMP = dSC_TRUECOMP;
}
public String getDSC_EXCECAO_TC() {
if (DSC_EXCECAO_TC == null){
return "";
}else{
return DSC_EXCECAO_TC;
}
}
public void setDSC_EXCECAO_TC(String dSC_EXCECAO_TC) {
DSC_EXCECAO_TC = dSC_EXCECAO_TC;
}
public String getORDER_ID() {
if (ORDER_ID == null){
return "";
}else{
return ORDER_ID;
}
}
public void setORDER_ID(String oRDER_ID) {
ORDER_ID = oRDER_ID;
}
public String getACCOUNT_ID() {
if (ACCOUNT_ID == null){
return "";
}else{
return ACCOUNT_ID;
}
}
public void setACCOUNT_ID(String aCCOUNT_ID) {
ACCOUNT_ID = aCCOUNT_ID;
}
public String getDSC_REGULARIZACAO() {
if (DSC_REGULARIZACAO == null){
return "";
}else{
return DSC_REGULARIZACAO;
}
}
public void setDSC_REGULARIZACAO(String dSC_REGULARIZACAO) {
DSC_REGULARIZACAO = dSC_REGULARIZACAO;
}
}
E na Classe de DAO
/* Metodo de consulta no banco de dados */
private List<Hist_Consolidado_2014> consultar(String pLogin,String pCondicao){
String vLogin = null;
EntityManager entityManager = getEntityManager();
String vSQL = " a from Hist_Consolidado_2014 a";
vSQL += " join Tmp_Ntc b ";
//vSQL += " a.num_ntc = b.num_ntc";
int vPos = pLogin.indexOf("-");
if (vPos != -1){
vLogin = pLogin.substring(0, vPos-2);
vSQL += " WHERE b.NUM_LOGIN = '"+vLogin+"'";
}
if (pCondicao != null){
vSQL += " AND " + pCondicao;
}
vSQL += " ORDER BY a.NUM_ID";
System.out.println("Consulta executada : " + vSQL);
Query vQuery = entityManager.createQuery(vSQL);
@SuppressWarnings("unchecked")
List<Hist_Consolidado_2014> listaHist = vQuery.getResultList();
return listaHist;
}
Porem apresenta o seguinte erro
O exemplo do site que me passou não consegui entender como fazer , poderia me ajudar a entender ?
grato