Problemas com DATA + HIBERNATE

13 views
Skip to first unread message

Bruno

unread,
Oct 28, 2010, 12:59:36 AM10/28/10
to
Olá pessoal,

Estou com o seguinte problema:

No banco (oracle) tenho:

TABLE: StCidadao
             ID   number;
             DT_NASC  varchar2(100);

VIEW:   ViewCidadao
             ID   number;
             DT_NASC  varchar2(10);



E tenho as classes:
public class ViewCidadao implements Serializable {

    private long id;

    @Column(name="DT_NASC")
    private String dtNasc;
}


public class StCidadao implements Serializable {

    private long id;

    @Column(name="DT_NASC")
    private String dtNasc;
}


No banco de dados as datas estão no formato DD/MM/YYYY (lembrando que a coluna não é date e sim varchar).

Na hora de popular os objetos (estou usando EntityManager, código abaixo) o campo dtNasc de StCidadao esta vindo no formato que esta no banco: 01/02/1982,
porem com ViewCidadao o campo dtNasc esta sendo preenchido com: 1982-02-01 00:00:00.0.


Código usado para popular os objetos:
public List<ViewCidadao> getViewCidadaoById(Long id) {
        EntityManager em = getEntityManager();
        List<ViewCidadao> results = null;
        try {
            Query query = em.createNamedQuery("getViewCidadaoById");
            query.setParameter("id", id);
            results = (List<ViewCidadao>) query.getResultList();
        } finally {
            em.close();
        }
        return results;
    }


Alguém já passou por esse  tipo de problema e/ou tem idéia de como resolver ?


Obrigado pela atenção,

_________________________
Bruno Santos Dumont
msn: brun...@gmail.com
Brasília - DF, Brasil

Edipo Melo (Οἰδίπους)

unread,
Oct 28, 2010, 6:55:55 AM10/28/10
to hibernat...@googlegroups.com
Bruno,

O correto é usar Date. Tem algum motivo forte para usar String?

> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Hibernate
> Brasil" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para
> hibernat...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> hibernate-bras...@googlegroups.com.
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/hibernate-brasil?hl=pt-BR.
>

--

    Abraços,
    Édipo Melo

Antonio De paula

unread,
Oct 28, 2010, 7:12:41 AM10/28/10
to hibernat...@googlegroups.com
Essa data quem esta preeche é o usuário certo ?

La na entidade StCidadao e coluna  ( @Column(name="DT_NASC") )
Entao usa @Temporal(TemporalType.DATE), é vê como fica

acho que da para ficar assim:

/////////////////////////////////////////////////////////////////////////////////////////////////////////

public class StCidadao implements Serializable {

    private long id;

    @Temporal(TemporalType.DATE)

    @Column(name="DT_NASC")
    private String dtNasc;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

Antonio

Endereço para acessar este CV:
http://lattes.cnpq.br/3558968689293355





From: brun...@gmail.com
Date: Thu, 28 Oct 2010 00:59:36 -0400
Subject: [HIBERNATE] Problemas com DATA + HIBERNATE

Bruno

unread,
Oct 28, 2010, 9:33:06 AM10/28/10
to hibernat...@googlegroups.com
Pois é, sei que o correto é usar Date, mas eu não posso mexer no banco, até pq ele esta em produção.


2010/10/28 Edipo Melo (Οἰδίπους) <edipo...@gmail.com>



--
_________________________
Bruno Santos Dumont
+55 (61) 9608-8041
+55 (61) 8147-8005

Davi

unread,
Nov 13, 2010, 7:25:07 AM11/13/10
to Hibernate Brasil
Bruno pesquise por DateFormat.

att Davi

On 28 out, 01:59, Bruno <bruno....@gmail.com> wrote:
> Olá pessoal,
>
> Estou com o seguinte problema:
>
> No banco (oracle) tenho:
>
> TABLE: StCidadao
>              ID   number;
>              DT_NASC  varchar2(*100*);
>
> VIEW:   ViewCidadao
>              ID   number;
>              DT_NASC  varchar2(*10*);
> msn: bruno....@gmail.com
> Brasília - DF, Brasil
Reply all
Reply to author
Forward
0 new messages