problema campo timestamp no oracle + hibernate

135 views
Skip to first unread message

Bruno Maomeh

unread,
Feb 25, 2010, 8:19:26 AM2/25/10
to disc...@cejug.dev.java.net, jav...@googlegroups.com
pessoal, estou com um problema com o oracle 10g e hibernate com um campo timestamp..
eu preciso que ele salve a data + hora no banco.. porém está salvando só a data..

eu fiz o mapeamento de um atributo da minha classe assim:
    @Column(name="DATA_ENVIO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataEnvio;
//teoricamente isso deveria salvar data e hora no banco certo?

na minha base oracle eu defini a coluna data_envio como timestamp..
porém quando eu mando o hibernate dar um update (hql) nesse campo, ele está salvando só a data..

o meu update:
         Query query = ((Session)em.getDelegate()).createQuery(
                "update FilaSincronizacao f set f.dataEnvio = :dataEnvio " +
                "where f.id = :id");

        query.setDate("dataEnvio", new Date());//aqui era pra ele enviar data e hora, não?
        query.setInteger("id", fila.getId());
       
        query.executeUpdate();

eu não quero atualizar todas as colunas.. e sim apenas essa(data_envio)..
alguma dica? :)

--
Bruno Maomeh
  http://brunomaomeh.wordpress.com

Bruno Maomeh

unread,
Feb 25, 2010, 8:48:18 AM2/25/10
to disc...@cejug.dev.java.net, jav...@googlegroups.com
descobri o problema.. erro besta mesmo.. :/

alterei: query.setDate("dataEnvio", new Date());
por: query.setTimestamp("dataEnvio", new Date());
e funcionou corretamente.. valeu! :)

Em 25 de fevereiro de 2010 10:33, Bruno Maomeh <bruno...@gmail.com> escreveu:
fiz uma consulta.. e ele me retornou um java.util.Date(tipo do meu atributo): 2010-02-25 00:00:00.0
realmente ficou estranho essa consulta.. vou tentar examinar melhor aqui..

Em 25 de fevereiro de 2010 10:29, Bruno Maomeh <bruno...@gmail.com> escreveu:

estou usando o pl/sql developer com client.. a ele está mostrando a informação assim: 25/02/10 00:00:00,000
por isso acho que não seja o client.. mas vou fazer esse teste.. valeu!

Em 25 de fevereiro de 2010 10:25, CDANIEL Araújo <cdaniel...@gmail.com> escreveu:
Bruno,
 
Só uma dica!
 
Pode ser que a data e hora esteja sendo gravada, porém a forma de recuperação da informação por meio de algum client que vc esteja utilizando, não mostre a informação de data e hora. Veja se você consegue rodar a consulta com uma formatação apenas para hora.


  DANIEL Araújo, ITIL®
  Analista de Sistemas

Reply all
Reply to author
Forward
0 new messages