Pessoa fiz a seguinte entity:
@Entity
@Table(name = "tb_operacao_movimentacao_pendencia")
@SequenceGenerator(sequenceName="tb_operacao_movimentacao_pendencia_seq",allocationSize=1,initialValue=1, name = "tb_operacao_movimentacao_pendencia_seq")
public class TbOperacaoMovimentacaoPendencia implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "tb_operacao_movimentacao_pendencia_seq")
@Column(name = "cd_operacao_movimentacao_pendencia", nullable = false)
private Integer cdOperacaoMovimentacaoPendencia;
@Column(name = "cd_movimentacao_pendencia")
private BigInteger cdMovimentacaoPendencia;
@Column(name = "ds_operacao_pendencia", nullable = false)
private String dsOperacaoPendencia;
@Column(name = "dt_operacao_pendencia")
@Temporal(TemporalType.DATE)
private Date dtOperacaoPendencia;
@Column(name = "nm_usuario_operacao_pendencia")
private String nmUsuarioOperacaoPendencia;
@Column(name = "nr_identificacao_operacao_pendencia")
private String nrIdentificacaoOperacaoPendencia;
@Column(name = "cd_cpf_usuario_operacao_pendencia")
private String cdCpfUsuarioOperacaoPendencia;
@Column(name = "vl_operacao_pendencia")
private BigDecimal vlOperacaoPendencia;
// GETERS AND SETERS
coloquei no meu arquivo de configuracao para ele criar as tabelas… fui la criei somente o banco com o encoding LATIN1
rodei o programa… ele criou todas as tabelas direitinho… bonitinho… sem problemas… porem qdo eu vou persistir essa classe AE ela me retorna o seguinte erro:
[TopLink Info]: 2008.08.06 01:25:36.795–ServerSession(10711912)–TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2008.08.06 01:25:37.729–ServerSession(10711912)–file:/C:/java/projetos/dna/Caixa/fontes/Caixa/build/classes/-CaixaPU login successful
resultado 0.0
[TopLink Warning]: 2008.08.06 01:25:53.241–ClientSession(11867140)–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 “tb_operacao_movimentacao_consolidado_cd_operacao_movimentacao_c” does not exist
Error Code: 0
Call: select currval(‘tb_operacao_movimentacao_consolidado_cd_operacao_movimentacao_consolidado_seq’)
Query: ValueReadQuery()
javax.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 “tb_operacao_movimentacao_consolidado_cd_operacao_movimentacao_c” does not exist
Error Code: 0
Call: select currval(‘tb_operacao_movimentacao_consolidado_cd_operacao_movimentacao_consolidado_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.FuncoesBanco.persist(FuncoesBanco.java:32)
eu estou preenchendo os campos assim:
[code] for(TbOperacaoMovimentacaoPendencia pendencia : pendencias){
TbOperacaoMovimentacaoConsolidado operacaoConsolidada = new TbOperacaoMovimentacaoConsolidado();
operacaoConsolidada.setCdMovimentacaoConsolidado(movimentacao);
operacaoConsolidada.setCdCpfUsuarioOperacaoConsolidado(pendencia.getCdCpfUsuarioOperacaoPendencia());
operacaoConsolidada.setDsOperacaoConsolidado(pendencia.getDsOperacaoPendencia());
operacaoConsolidada.setDtOperacaoConsolidado(pendencia.getDtOperacaoPendencia());
operacaoConsolidada.setNmUsuarioOperacaoConsolidado(pendencia.getNmUsuarioOperacaoPendencia());
operacaoConsolidada.setNrIdentificacaoOperacaoConsolidado(pendencia.getNrIdentificacaoOperacaoPendencia());
operacaoConsolidada.setVlOperacaoConsolidado(pendencia.getVlOperacaoPendencia());
funcBanco.persist(operacaoConsolidada);
funcBanco.delete(pendencia);
}[/code]
no meu banco eu tenho a tabela:
CREATE TABLE tb_operacao_movimentacao_consolidado
(
cd_operacao_movimentacao_consolidado integer NOT NULL DEFAULT nextval(‘tb_operacao_movimentacao_cons_cd_operacao_movimentacao_cons_seq’::regclass),
nm_usuario_operacao_consolidado character varying(255),
nr_identificacao_operacao_consolidado character varying(255),
ds_operacao_consolidado character varying(255) NOT NULL,
cd_cpf_usuario_operacao_consolidado character varying(255),
vl_operacao_consolidado numeric(38),
dt_operacao_consolidado date,
cd_movimentacao_consolidado integer,
CONSTRAINT tb_operacao_movimentacao_consolidado_pkey PRIMARY KEY (cd_operacao_movimentacao_consolidado),
CONSTRAINT tb_operacao_movimentacao_consolidadocd_movimentacao_consolidado FOREIGN KEY (cd_movimentacao_consolidado)
REFERENCES tb_movimentacao (cd_movimentacao) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE tb_operacao_movimentacao_consolidado OWNER TO postgres;
e a sequencia:
nao consigo resolver isso… alguem pode me ajudar por favor?
ALGUEM SABE SE TEM ALGUMA COISA COM O TAMANHO DA TABELA E DO CAMPO??? cria uma sequence mto grande q da problema?
cara …tudo indica que tem a ver com seu campo " cd_operacao_movimentacao_consolidado"
verifique no SGBD que vc esta usando qual o tamanho maximo para o nome de uma coluna !
perceba que no erro ele acusa que a coluna “cd_operacao_movimentacao_c” nao existe !!!..parece que ele cortou o “onsolidado” do nome da coluna
pesquise isso
mas entao cara… o problema e no java (toplink) pq se eu for na tabela ele insere direitinho…
Fala binho! Se vc tiver uma entity com essa tabela, “tb_operacao_movimentacao_consolidado” posta ae.
Perceba que ele procura por uma tabela “tb_operacao_movimentacao_consolidado_cd_operacao_movimentacao_c”. Você tem alguma entity que corresponda a essa tabela? Está referenciando essa entity?
Orlando e amigos… descobri
e pq o nome da minha tabela e do meu campo q gerava a sequence e mto grande… logo ele nao criava a sequence com o nome completo, ele abrevia algumas partes… logo fiz uma tabela com um nome e um campo menor… e deu certinho
abracos