Erro com Data no Hibernate

9 respostas
fabio.nascimento

Pessoal

To estudando hibernate e to com uma dificuldade aqui, por favor se alguém puder me ajudar.

trecho do meu Bean

public class BookmarkBean {

    private String link;
    private int id;
    private Date dt;

getters e setters...

meu hbm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sia.Bookmark.Bean.BookmarkBean" table="bookmark">
    <!-- Identificador da classe -->
    <id name="id">
        <generator class="increment"/>
    </id>
    <!-- Propriedades da classe -->
    <property name="link"/>
    <property name="dt" type="java.util.Date"/>
</class>
</hibernate-mapping>

Tabela no banco está como DATE

Ao tentar inserir me é apresentado o seguinte erro:

sourceId=j_id_jsp_753099514_1:data[severity=(ERROR 2), summary=(Conversion Error setting value '11/12/2008' for 'null Converter'. ), detail=(Conversion Error setting value '11/12/2008' for 'null Converter'. )]

Alguém tem um caminho ou dica para que eu estude?

Grato.

9 Respostas

felipedamiani

acho que você não está convertendo a data, segue:

DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
Date data = df.parse(“11/12/2008”);

fabio.nascimento

felipedamiani:
acho que você não está convertendo a data, segue:

DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
Date data = df.parse(“11/12/2008”);

Engraçado, achei que o hibernate faria isso pra mim…

Mas tenho que converter a data antes de enviar para gravação ???

felipedamiani

DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
Date data = df.parse(“11/12/2008”);

objeto.setData(data)

hibernate.save(objeto)

F

O problema é o teu mapeamento com o type, não é o pacote.classe java e sim uma string que o Hibernate usa para identificar quais tipos java pode usar, exemplo abaixo:

<property       name="data"         type="calendar_date"        not-null="true" />
    <property       name="contato"      type="string" length="50"   not-null="true" />
    <property       name="idstatus"     type="integer" not-null="true" />
fabio.nascimento

felipedamiani:
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
Date data = df.parse(“11/12/2008”);

objeto.setData(data)

hibernate.save(objeto)

Esse cara precisa estar dentro de um Try certo?

E tem mais ele dá tipo incompativel para conversão.

Engraçado, ele continua dando este erro abaixo:

sourceId=j_id_jsp_753099514_1:data[severity=(ERROR 2), summary=(Conversion Error setting value '11/11/2008' for 'null Converter'. ), detail=(Conversion Error setting value '11/11/2008' for 'null Converter'. )]

Como que tenho que definir no banco o tipo de dados Data???
DATE
DATETIME
TIMESTAMP

??

Grato.

fabio.nascimento

pessoal,

tenho batido a cabeça bastante, mas acho que o erro abaixo pode ser somente em página certo?

sourceId=j_id_jsp_753099514_1:dt[severity=(ERROR 2), summary=(Conversion Error setting value '11/11/2008' for 'null Converter'. ), detail=(Conversion Error setting value '11/11/2008' for 'null Converter'. )]
K

eu tenho esse mesmo erro… ninguem sabe a resposta??

Meu Bean:

private Date data;
public Date getData() {return data;}
public void setData(Date data) {this.data = data;}

hbm.xml

<property name="data" type="calendar_date"/>

jsp onde eu uso

<h:outputText value="Data:" /> <br/>
<h:inputText value="#{eventoCtr.evento.data}" required="true" /><p/>
ramilani12

que banco de dados vc´s estão utilizando?, mysql?

K

eu uso postgres

o type o hbm.xml eu ja usei como date soh tb e deu o mesmo erro

Criado 23 de novembro de 2007
Ultima resposta 12 de dez. de 2008
Respostas 9
Participantes 5