Help urgente jpa

5 respostas
fabioebner
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:

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);
                    
        }

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:

CREATE SEQUENCE tb_operacao_movimentacao_cons_cd_operacao_movimentacao_cons_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 2 CACHE 1; ALTER TABLE tb_operacao_movimentacao_cons_cd_operacao_movimentacao_cons_seq OWNER TO postgres;

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?

5 Respostas

rafachies

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

fabioebner

mas entao cara… o problema e no java (toplink) pq se eu for na tabela ele insere direitinho…

T

Fala binho! Se vc tiver uma entity com essa tabela, “tb_operacao_movimentacao_consolidado” posta ae.

Alexandre_Saudate

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?

fabioebner

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

Criado 6 de agosto de 2008
Ultima resposta 6 de ago. de 2008
Respostas 5
Participantes 4