Pessoal como eu faco para falar pra minha entity q eu quero usar um a SEQUENCE QUE EU CRIEI??
usei o seguinte codigo para criar a tabela :
create sequence db_notas.tb_central_cep_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
CREATE TABLE db_notas.tb_central_cep(
cd_central_cep integer primary key not null default nextval('db_notas.tb_central_cep_seq'),
dt_central DATE,
hr_central TIME,
cd_usuario_central INTEGER,
nm_usuario_central VARCHAR(250)
);
e gerei a minha entity assim:
@Entity
@Table(name = "tb_central_cep", catalog = "db_dnaso", schema = "db_notas")
@SequenceGenerator(sequenceName="tb_central_cep_seq",allocationSize=1, initialValue=0, name = "tb_central_cep_seq")
@NamedQueries({
@NamedQuery(name = "TbCentralCep.findAll", query = "SELECT t FROM TbCentralCep t"),
@NamedQuery(name = "TbCentralCep.findByCdCentralCep", query = "SELECT t FROM TbCentralCep t WHERE t.cdCentralCep = :cdCentralCep"),
@NamedQuery(name = "TbCentralCep.findByDtCentral", query = "SELECT t FROM TbCentralCep t WHERE t.dtCentral = :dtCentral"),
@NamedQuery(name = "TbCentralCep.findByHrCentral", query = "SELECT t FROM TbCentralCep t WHERE t.hrCentral = :hrCentral"),
@NamedQuery(name = "TbCentralCep.findByCdUsuarioCentral", query = "SELECT t FROM TbCentralCep t WHERE t.cdUsuarioCentral = :cdUsuarioCentral"),
@NamedQuery(name = "TbCentralCep.findByNmUsuarioCentral", query = "SELECT t FROM TbCentralCep t WHERE t.nmUsuarioCentral = :nmUsuarioCentral")})
public class TbCentralCep implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY, generator="tb_central_cep_seq")
@Basic(optional = false)
@Column(name = "cd_central_cep", nullable = false)
private Integer cdCentralCep;
porem recebo o seguinte ERRO:
[quote]Internal Exception: org.postgresql.util.PSQLException: ERROR: relation “db_notas.tb_central_cep_cd_central_cep_seq” does not exist
Error Code: 0
Call: select currval(‘db_dnaso.db_notas.tb_central_cep_cd_central_cep_seq’)
Query: ValueReadQuery()
[/quote]
ele procura a sequence “nome_da_tabela_nome_do_campo_seq” mas eu quero fazer ele usar a que eu criei com qualquer nome a minha escolha.
@Entity
@Table(name = "tb_central_cep", catalog = "db_dnaso", schema = "db_notas")
@NamedQueries({
@NamedQuery(name = "TbCentralCep.findAll", query = "SELECT t FROM TbCentralCep t"),
@NamedQuery(name = "TbCentralCep.findByCdCentralCep", query = "SELECT t FROM TbCentralCep t WHERE t.cdCentralCep = :cdCentralCep"),
@NamedQuery(name = "TbCentralCep.findByDtCentral", query = "SELECT t FROM TbCentralCep t WHERE t.dtCentral = :dtCentral"),
@NamedQuery(name = "TbCentralCep.findByHrCentral", query = "SELECT t FROM TbCentralCep t WHERE t.hrCentral = :hrCentral"),
@NamedQuery(name = "TbCentralCep.findByCdUsuarioCentral", query = "SELECT t FROM TbCentralCep t WHERE t.cdUsuarioCentral = :cdUsuarioCentral"),
@NamedQuery(name = "TbCentralCep.findByNmUsuarioCentral", query = "SELECT t FROM TbCentralCep t WHERE t.nmUsuarioCentral = :nmUsuarioCentral")})
public class TbCentralCep implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@SequenceGenerator(name = "SEQ", sequenceName="tb_central_cep_seq",allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ")
@Column(name = "cd_central_cep", nullable = false)
private Integer cdCentralCep;
@Column(name = "dt_central")
@Temporal(TemporalType.DATE)
e recebi o mesmo erro:
[quote]avax.persistence.RollbackException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: relation “db_notas.tb_central_cep_cd_central_cep_seq” does not exist
Error Code: 0
Internal Exception: org.postgresql.util.PSQLException: ERROR: relation “db_notas.tb_central_cep_cd_central_cep_seq” does not exist
Call: select currval(‘db_dnaso.db_notas.tb_central_cep_cd_central_cep_seq’)
Error Code: 0
Query: ValueReadQuery()
Call: select currval(‘db_dnaso.db_notas.tb_central_cep_cd_central_cep_seq’)
Query: ValueReadQuery()
at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:120)
at oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:60)
at br.com.dnasolution.dao.ConexaoNotas.commitTransacao(ConexaoNotas.java:78)
[/quote]
nesta aparte ai não precisa de todo esse código. É mais simples que aparece, quando eu utilizei a primeira o postgre + top llink deu esse mesmo problema
Poutz q vacilo nao vi toda a exception e olha no q deu. vi apenas a parte de Oracle TopLink Essentials
Mas no postgres se vc criou o seu campo como serial provavelmente irá rodar da forma como eu postei. Boa sorte