Boa dia galera,
Estou com me batendo com um probelma de mapeamento faz algus dias e não achei solução.
estou tentando mapear estas duas classes.
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;
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.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.Version;
@Entity
@Table(name = "NCM")
public class NCM implements Serializable {
private static final long serialVersionUID = 23L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idNCM;
private String codigoNCM;
private String descricaoNCM;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idGrupo")
private GrupoNCM grupoNCM = new GrupoNCM();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idIcms")
private Icms ICMS = new Icms();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idIpi")
private Ipi IPI = new Ipi();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idPis")
private Pis PIS = new Pis();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idPisST")
private PisST PISST = new PisST();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idCofins")
private Cofins COFINS = new Cofins();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idCofinsST")
private CofinsST COFINSST = new CofinsST();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idII")
private II II = new II();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "idIssqn")
private Issqn ISSQN = new Issqn();
// getters e setter omitidos;
}
e mais esta otra
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;
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.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.Version;
@Entity
@Table(name = "PRODUTOESERVICOS")
public class Produto implements Serializable {
private static final long serialVersionUID = 23L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDPRODUTO")
private Long idProduto;
@Column(name = "XPROD", length = 120)
private String xProd;
@Column(name = "CPROD", length = 60)
private String cProd;
@Column(name = "CEAN", length = 14)
private String cEAN;
@Column(name = "CEANTRIB", length = 14)
private String cEANTrib;
@Column(name = "EXTIPI", length = 3)
private String EXTIPI;
@Column(name = "NCM", length = 8)
private String NCM;
@Column(name = "UCOM", length = 6)
private String uCom;
@Column(name = "VUNCOM", length = 21)
private BigDecimal vUnCom = BigDecimal.ZERO;
@Column(name = "UTRIB", length = 6)
private String uTrib;
@Column(name = "QTRIB", length = 15)
private BigDecimal qTrib = BigDecimal.ZERO;
@Column(name = "VUNTRIB", length = 21)
private BigDecimal vUnTrib = BigDecimal.ZERO;
@Column(name = "DTCADASTRO")
@Temporal(javax.persistence.TemporalType.DATE)
private Date dtCadastro;
@Column(name = "ATIVO")
private Boolean ativo;
@Version
@Column(name = "VERSAO")
private Timestamp versao;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "IDNCM")
private NCM nomeComMerc;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "IDEMITENTE")
private Emitente emitente;
// getter e setter omitidos;
}
Quando gero o mapeamento ele não cria o relacionamento entre a as duas tabelas que no caso seria 1xN com a FK de NCM na tabela produto.
Fiz diversos testes e percebi uma coisa;
Quando troco o nome da classe produto ele gera, mais se deixar com o nome de produto não gera.
Outra ponto interessante.
Se criar outra classe e copiar o codigo da produto e colar dentro da nova classe. esta nova classe gera o mapeamento corretamente.
Alguém ja passou por este problema.
Estou usando o banco postgresql.
agradeço desde já.