JPA e campo timestamp [RESOLVIDO]

eu estou usando o mysql e uma das minhas tabelas tem alguns campos timestamp, eu criei o banco e todo o mapeamento foi feito automaticamente pelo netbeans, mas qdo vou fazer uma consulta acontece o erro:

Internal Exception: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
Error Code: 0
Call: SELECT id, data_cadastro, data_fim, data_inicio, descricao, pontos, previsao_termino, status, titulo, projeto FROM tarefa
Exception in thread "AWT-EventQueue-0" Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Query: ReadAllQuery(name="Tarefa.findAll" referenceClass=Tarefa sql="SELECT id, data_cadastro, data_fim, data_inicio, descricao, pontos, previsao_termino, status, titulo, projeto FROM tarefa")
Internal Exception: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
Error Code: 0
Call: SELECT id, data_cadastro, data_fim, data_inicio, descricao, pontos, previsao_termino, status, titulo, projeto FROM tarefa
Query: ReadAllQuery(name="Tarefa.findAll" referenceClass=Tarefa sql="SELECT id, data_cadastro, data_fim, data_inicio, descricao, pontos, previsao_termino, status, titulo, projeto FROM tarefa")
	at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)

eu acho q o erro está acontecendo porque ele está tentando inserir o valor 0000-00-00 00:00:00 em um campo Date, q n suporta hora, eu ja tentei mudar o campo pra outros tipos de dados e tb n deu certo, pelo que eu consegui achar nas minhas pesquisas o campo Date ta certo, alguem sabe o que está acontecendo?

os atributos da minha entidade:

package entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;

@Entity
@Table(name = "tarefa")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Tarefa.findAll", query = "SELECT t FROM Tarefa t"),
    @NamedQuery(name = "Tarefa.findById", query = "SELECT t FROM Tarefa t WHERE t.id = :id"),
    @NamedQuery(name = "Tarefa.findByDescricao", query = "SELECT t FROM Tarefa t WHERE t.descricao = :descricao"),
    @NamedQuery(name = "Tarefa.findByTitulo", query = "SELECT t FROM Tarefa t WHERE t.titulo = :titulo"),
    @NamedQuery(name = "Tarefa.findManyByTitulo", query = "SELECT t FROM Tarefa t WHERE t.titulo like :titulo order by t.titulo"),
    @NamedQuery(name = "Tarefa.findByDataCadastro", query = "SELECT t FROM Tarefa t WHERE t.dataCadastro = :dataCadastro"),
    @NamedQuery(name = "Tarefa.findByDataInicio", query = "SELECT t FROM Tarefa t WHERE t.dataInicio = :dataInicio"),
    @NamedQuery(name = "Tarefa.findByPrevisaoTermino", query = "SELECT t FROM Tarefa t WHERE t.previsaoTermino = :previsaoTermino"),
    @NamedQuery(name = "Tarefa.findByDataFim", query = "SELECT t FROM Tarefa t WHERE t.dataFim = :dataFim"),
    @NamedQuery(name = "Tarefa.findByPontos", query = "SELECT t FROM Tarefa t WHERE t.pontos = :pontos"),
    @NamedQuery(name = "Tarefa.findByStatus", query = "SELECT t FROM Tarefa t WHERE t.status = :status")})
public class Tarefa implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Column(name = "descricao")
    private String descricao;
    @Column(name = "titulo")
    private String titulo;
    @Column(name = "data_cadastro")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataCadastro;
    @Column(name = "data_inicio")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataInicio;
    @Column(name = "previsao_termino")
    @Temporal(TemporalType.TIMESTAMP)
    private Date previsaoTermino;
    @Column(name = "data_fim")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataFim;
    @Column(name = "pontos")
    private Integer pontos;
    @Basic(optional = false)
    @Column(name = "status")
    private String status;
    @JoinColumn(name = "projeto", referencedColumnName = "id")
    @ManyToOne
    private Projeto projeto;

Eu sinceramente excomundo código feito pelo netbeans…
Nem sempre ele é útil. Fazer na mão é bem mais trabalhoso, concordo, mas tem-se a certeza de bom código.
Se ele tentar inserir qualquer data como ‘0000-00-00’ independente da hora, ele não conseguirá. O MySQL sabe que não houve ano 0 (a contagem de tempo não possui ano 0, apenas 1 A.C. e 1 D.C.), logo o problema é este.
Você deve definir uma data padrão ou alterar para que as colunas possam receber um valor null.

era isso mesmo cara, mto obrigado, resolvi aki, mto obrigado mesmo xD
vlw ^^ eu vou aproveitar e ver se começo o escrever o meu proprio codigo entao, vou dar uma olhada aki xD

Acredito que o primeiro passo seja usar uma outra IDE, como o Eclipse.
Ele te forçará a fazer muita coisa manualmente. Isso pode parecer cruel a princípio, mas é fundamental a longo prazo.
Você vai repetir muita escrita de código e isso te permitirá memorizar e realmente aprender a codificar.