Trabalhando com date no hibernate

Eu fiz um programinha pra testar a inserção de Date no mysql, o problema é que sempre insere junto
as horas 1989-01-01 00:12:00 , eu só queria iserir o ano mês e dia, como eu faço para tirar as horas?

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;


import Modelos.Tbservico;

public class testes {
	public static void main(String[] args) throws ParseException {

		AnnotationConfiguration configuration = new AnnotationConfiguration();
		configuration.configure();

		SessionFactory factory = configuration.buildSessionFactory();
		Session session = factory.openSession();

		Tbservico tbservico = new Tbservico();

		DateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");
		Date date = dateFormat.parse("27-12-2008");
		tbservico.setCdiaSem(date);
	

		System.out.println(date);

		Transaction transaction = session.beginTransaction();
		session.save(tbservico);
		transaction.commit();
		session.close();
		factory.close();
           }
}

Como está a estrutura da tabela no banco de dados? Qual o tipo de dado que onde você está armazenando a data?

Ele está assim

import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;



@Entity
public class Tbservico {
	@Id
	@GeneratedValue
	private Long lidservico;
	private Date data;
	private Long lidmensagem;
	private Long lidestacao;
	private String cmusica;
	private Date cdiaSem;
	private String thoras;
	private String cestacao;

	public String getThoras() {
		return thoras;
	}

	public String getCestacao() {
		return cestacao;
	}

	public void setCestacao(String estacao) {
		this.cestacao = estacao;
	}

	public void setThoras(String horas) {
		this.thoras = horas;
	}

	public Date getCdiaSem() {
		return cdiaSem;
	}

	public void setCdiaSem(Date cdiaSem) {
		this.cdiaSem = cdiaSem;
	}

	public Long getLidservico() {
		return lidservico;
	}

	public void setLidservico(Long id) {
		this.lidservico = id;
	}

	public Long getLidmensagem() {
		return lidmensagem;
	}

	public void setLidmensagem(Long lidmensagem) {
		this.lidmensagem = lidmensagem;
	}

	public Long getLidestacao() {
		return lidestacao;
	}

	public void setLidestacao(Long liestacao) {
		this.lidestacao = liestacao;
	}

	public String getCmusica() {
		return cmusica;
	}

	public void setCmusica(String musica) {
		this.cmusica = musica;
	}

	public Date getData() {
		return data;
	}

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

}
 create table Tbservico (
        lidservico bigint not null auto_increment,
        cdiaSem datetime,
        cestacao varchar(255),
        cmusica varchar(255),
        data datetime,
        lidestacao bigint,
        lidmensagem bigint,
        thoras varchar(255),
        primary key (lidservico)
    )

Não não, como está a tabela no mysql?

DATE?
DATETIME?
TIMESTAMP?

EDITADO: Desculpe-me, não havia observado o script no topico anterior…

Agora eu entedi o que você quis falar, já sei qual é o erro é que tá em DATETIME, agora vou tentar descobrir como faço pra alterar isso pelo hibernate, se alguém souber será de grande ajuda :smiley:

[quote=C3]Eu fiz um programinha pra testar a inserção de Date no mysql, o problema é que sempre insere junto
as horas 1989-01-01 00:12:00 , eu só queria iserir o ano mês e dia, como eu faço para tirar as horas?
[/quote]

Estranho o 12:00 ali. Você pode simplesmente ignorar as horas, não?

Putz cara, teu problema está somente na formatação de data. Vc está usando ‘mm’ em minúsculas! Isso quer dizer minutos. Note que o 12 da tua string de data virou os minutos no banco de dados.

Dê uma olhada no padrão de formatação em:

http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

Qualquer dúvida poste!

Resolvi o problema , valew pela ajuda se você não tivesse falado da estrutura nem teria reparado :smiley:

@Type(type = "date")
private Date cdiaSem;