CREATE TABLE db_notas.tb_titulo(
cd_titulo SERIAL PRIMARY KEY,
nm_titulo VARCHAR(250) NOT NULL,
ds_titulo VARCHAR(250)
);
CREATE TABLE db_notas.tb_exigencia(
cd_exigencia SERIAL PRIMARY KEY,
nm_exigencia VARCHAR(250) NOT NULL,
ds_exigencia TEXT,
vl_exigencia NUMERIC(12,2)
) ;
CREATE TABLE db_notas.tb_natureza(
cd_natureza SERIAL PRIMARY KEY,
nm_natureza VARCHAR(250) NOT NULL,
ds_natureza VARCHAR(250),
nr_dias_previsto integer,
cd_tabela_custa INTEGER,
nm_modelo_documento VARCHAR(250),
cd_divisor INTEGER
);
CREATE TABLE db_notas.tb_titulo_natureza(
cd_titulo INTEGER REFERENCES db_notas.tb_titulo(cd_titulo),
cd_natureza INTEGER REFERENCES db_notas.tb_natureza(cd_natureza),
CONSTRAINT tb_titulo_natureza_pk PRIMARY KEY (cd_titulo, cd_natureza)
);
CREATE TABLE db_notas.tb_exigencia_natureza(
cd_exigencia INTEGER REFERENCES db_notas.tb_exigencia(cd_exigencia),
cd_natureza INTEGER REFERENCES db_notas.tb_natureza(cd_natureza),
CONSTRAINT tb_exigencia_natureza_pk PRIMARY KEY (cd_exigencia,cd_natureza)
);
ate ai perfeito.. manei o netbeans gerar as entity class.. agora vem o problema.. qdo ele cria.. a minha entity TbNatureza ele cria com o join ta tbTitulo, porem o join com a TbExigencia ele nao cria na TbNatureza e sim na TbExigencia.. alguem sabe o pq?? (pois qdo eu salvo ou altero uma natureza ele nao salva no banco as exigencias daquela natureza)
segue abaixo as entitys
TbTitulo@Entity
@Table(name = "tb_titulo")
@NamedQueries({@NamedQuery(name = "TbTitulo.findByCdTitulo", query = "SELECT t FROM TbTitulo t WHERE t.cdTitulo = :cdTitulo"), @NamedQuery(name = "TbTitulo.findByNmTitulo", query = "SELECT t FROM TbTitulo t WHERE t.nmTitulo = :nmTitulo"), @NamedQuery(name = "TbTitulo.findByDsTitulo", query = "SELECT t FROM TbTitulo t WHERE t.dsTitulo = :dsTitulo")})
public class TbTitulo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "cd_titulo", nullable = false)
private Integer cdTitulo;
@Column(name = "nm_titulo", nullable = false)
private String nmTitulo;
@Column(name = "ds_titulo")
private String dsTitulo;
@ManyToMany(mappedBy = "cdTituloCollection")
private Collection<TbNatureza> cdNaturezaCollection;
@OneToMany(mappedBy = "cdTitulo")
private Collection<TbIndicadorDocumento> tbIndicadorDocumentoCollection;
@OneToMany(mappedBy = "cdTitulo")
private Collection<TbDocumento> tbDocumentoCollection;
@Entity
@Table(name = "tb_natureza")
@NamedQueries({@NamedQuery(name = "TbNatureza.findByCdNatureza", query = "SELECT t FROM TbNatureza t WHERE t.cdNatureza = :cdNatureza"), @NamedQuery(name = "TbNatureza.findByNmNatureza", query = "SELECT t FROM TbNatureza t WHERE t.nmNatureza = :nmNatureza"), @NamedQuery(name = "TbNatureza.findByDsNatureza", query = "SELECT t FROM TbNatureza t WHERE t.dsNatureza = :dsNatureza"), @NamedQuery(name = "TbNatureza.findByNrDiasPrevisto", query = "SELECT t FROM TbNatureza t WHERE t.nrDiasPrevisto = :nrDiasPrevisto"), @NamedQuery(name = "TbNatureza.findByCdTabelaCusta", query = "SELECT t FROM TbNatureza t WHERE t.cdTabelaCusta = :cdTabelaCusta"), @NamedQuery(name = "TbNatureza.findByNmModeloDocumento", query = "SELECT t FROM TbNatureza t WHERE t.nmModeloDocumento = :nmModeloDocumento"), @NamedQuery(name = "TbNatureza.findByCdDivisor", query = "SELECT t FROM TbNatureza t WHERE t.cdDivisor = :cdDivisor")})
public class TbNatureza implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "cd_natureza", nullable = false)
private Integer cdNatureza;
@Column(name = "nm_natureza", nullable = false)
private String nmNatureza;
@Column(name = "ds_natureza")
private String dsNatureza;
@Column(name = "nr_dias_previsto")
private Integer nrDiasPrevisto;
@Column(name = "cd_tabela_custa")
private Integer cdTabelaCusta;
@Column(name = "nm_modelo_documento")
private String nmModeloDocumento;
@Column(name = "cd_divisor")
private Integer cdDivisor;
******************* AQUI ESTA O JOIN DA TBTITULO AQUI ESTA CORRETO *************************
@JoinTable(name = "tb_titulo_natureza", joinColumns = {@JoinColumn(name = "cd_natureza", referencedColumnName = "cd_natureza")}, inverseJoinColumns = {@JoinColumn(name = "cd_titulo", referencedColumnName = "cd_titulo")})
@ManyToMany
private Collection<TbTitulo> cdTituloCollection;
************* AQUI TINHA Q ESTAR O JOIN DA TBEXIGENCIA MAS ELE NAO ESTA AQUI ELE CRIA NA TBEXIGENCIA**************
@ManyToMany(mappedBy = "cdNaturezaCollection")
private Collection<TbExigencia> cdExigenciaCollection;
@OneToMany(mappedBy = "cdNatureza")
private Collection<TbIndicadorDocumento> tbIndicadorDocumentoCollection;
@OneToMany(mappedBy = "cdNatureza")
private Collection<TbDocumento> tbDocumentoCollection;
@Entity
@Table(name = "tb_exigencia")
@NamedQueries({@NamedQuery(name = "TbExigencia.findByCdExigencia", query = "SELECT t FROM TbExigencia t WHERE t.cdExigencia = :cdExigencia"), @NamedQuery(name = "TbExigencia.findByNmExigencia", query = "SELECT t FROM TbExigencia t WHERE t.nmExigencia = :nmExigencia"), @NamedQuery(name = "TbExigencia.findByDsExigencia", query = "SELECT t FROM TbExigencia t WHERE t.dsExigencia = :dsExigencia"), @NamedQuery(name = "TbExigencia.findByVlExigencia", query = "SELECT t FROM TbExigencia t WHERE t.vlExigencia = :vlExigencia")})
public class TbExigencia implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "cd_exigencia", nullable = false)
private Integer cdExigencia;
@Column(name = "nm_exigencia", nullable = false)
private String nmExigencia;
@Column(name = "ds_exigencia")
private String dsExigencia;
@Column(name = "vl_exigencia")
private BigDecimal vlExigencia;
@JoinTable(name = "tb_exigencia_orgao_emissor", joinColumns = {@JoinColumn(name = "cd_exigencia", referencedColumnName = "cd_exigencia")}, inverseJoinColumns = {@JoinColumn(name = "cd_orgao_emissor", referencedColumnName = "cd_orgao_emissor")})
@ManyToMany
private Collection<TbOrgaoEmissor> cdOrgaoEmissorCollection;
********************* ELE POE O JOIN AQUI..*************************
@JoinTable(name = "tb_exigencia_natureza", joinColumns = {@JoinColumn(name = "cd_exigencia", referencedColumnName = "cd_exigencia")}, inverseJoinColumns = {@JoinColumn(name = "cd_natureza", referencedColumnName = "cd_natureza")})
@ManyToMany
private Collection<TbNatureza> cdNaturezaCollection;
@OneToMany(mappedBy = "cdExigencia")
private Collection<TbExigenciaDocumento> tbExigenciaDocumentoCollection;
ja tentei mudar a ordem de criacao das tabelas, a ordem de criacao das chaves e nada..
alguem sabe o pq??
valeu