Não Monta a Query [ GenericJDBCException: could not execute query ]

Galera…

To com um probleminha aki… dei algumas googladas… e pelo que entendi… o hibernate não está montando as querys…

e gostaria da ajuda de vocês pra identificar o que estou fazendo de errado…

Uso
NetBeans 6
Tomcat 6.0.16
Hibernate 3.2.5
Hibernate Annotation 3.4.0 (eu acho hehehe)

Tá dando o seguinte erro comigo:

Pelo que entendi… ele não ta conseguindo montar a query para executar…

Vou postar minhas classes para ver se ajuda na solução do problema.

Minha Annotation:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Messias Bittencourt
 */
@Entity
@Table(name = "hardware")

public class Hardware implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "ID", nullable = false)
    private Integer id;
    @Column(name = "DEVICEID", nullable = false)
    private String deviceid;
    @Column(name = "NAME")
    private String name;
    @Column(name = "WORKGROUP")
    private String workgroup;
    @Column(name = "USERDOMAIN")
    private String userdomain;
    @Column(name = "OSNAME")
    private String osname;
    @Column(name = "OSVERSION")
    private String osversion;
    @Column(name = "OSCOMMENTS")
    private String oscomments;
    @Column(name = "PROCESSORT")
    private String processort;
    @Column(name = "PROCESSORS")
    private Integer processors;
    @Column(name = "PROCESSORN")
    private Short processorn;
    @Column(name = "MEMORY")
    private Integer memory;
    @Column(name = "SWAP")
    private Integer swap;
    @Column(name = "IPADDR")
    private String ipaddr;
    @Column(name = "ETIME")
    @Temporal(TemporalType.TIMESTAMP)
    private Date etime;
    @Column(name = "LASTDATE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastdate;
    @Column(name = "LASTCOME")
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastcome;
    @Column(name = "QUALITY")
    private BigDecimal quality;
    @Column(name = "FIDELITY")
    private BigInteger fidelity;
    @Column(name = "USERID")
    private String userid;
    @Column(name = "TYPE")
    private Integer type;
    @Column(name = "DESCRIPTION")
    private String description;
    @Column(name = "WINCOMPANY")
    private String wincompany;
    @Column(name = "WINOWNER")
    private String winowner;
    @Column(name = "WINPRODID")
    private String winprodid;
    @Column(name = "WINPRODKEY")
    private String winprodkey;
    @Column(name = "USERAGENT")
    private String useragent;
    @Column(name = "CHECKSUM")
    private Integer checksum;

    public Hardware() {
    }

    public Hardware(Integer id) {
        this.id = id;
    }

    public Hardware(Integer id, String deviceid) {
        this.id = id;
        this.deviceid = deviceid;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getDeviceid() {
        return deviceid;
    }

    public void setDeviceid(String deviceid) {
        this.deviceid = deviceid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getWorkgroup() {
        return workgroup;
    }

    public void setWorkgroup(String workgroup) {
        this.workgroup = workgroup;
    }

    public String getUserdomain() {
        return userdomain;
    }

    public void setUserdomain(String userdomain) {
        this.userdomain = userdomain;
    }

    public String getOsname() {
        return osname;
    }

    public void setOsname(String osname) {
        this.osname = osname;
    }

    public String getOsversion() {
        return osversion;
    }

    public void setOsversion(String osversion) {
        this.osversion = osversion;
    }

    public String getOscomments() {
        return oscomments;
    }

    public void setOscomments(String oscomments) {
        this.oscomments = oscomments;
    }

    public String getProcessort() {
        return processort;
    }

    public void setProcessort(String processort) {
        this.processort = processort;
    }

    public Integer getProcessors() {
        return processors;
    }

    public void setProcessors(Integer processors) {
        this.processors = processors;
    }

    public Short getProcessorn() {
        return processorn;
    }

    public void setProcessorn(Short processorn) {
        this.processorn = processorn;
    }

    public Integer getMemory() {
        return memory;
    }

    public void setMemory(Integer memory) {
        this.memory = memory;
    }

    public Integer getSwap() {
        return swap;
    }

    public void setSwap(Integer swap) {
        this.swap = swap;
    }

    public String getIpaddr() {
        return ipaddr;
    }

    public void setIpaddr(String ipaddr) {
        this.ipaddr = ipaddr;
    }

    public Date getEtime() {
        return etime;
    }

    public void setEtime(Date etime) {
        this.etime = etime;
    }

    public Date getLastdate() {
        return lastdate;
    }

    public void setLastdate(Date lastdate) {
        this.lastdate = lastdate;
    }

    public Date getLastcome() {
        return lastcome;
    }

    public void setLastcome(Date lastcome) {
        this.lastcome = lastcome;
    }

    public BigDecimal getQuality() {
        return quality;
    }

    public void setQuality(BigDecimal quality) {
        this.quality = quality;
    }

    public BigInteger getFidelity() {
        return fidelity;
    }

    public void setFidelity(BigInteger fidelity) {
        this.fidelity = fidelity;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getWincompany() {
        return wincompany;
    }

    public void setWincompany(String wincompany) {
        this.wincompany = wincompany;
    }

    public String getWinowner() {
        return winowner;
    }

    public void setWinowner(String winowner) {
        this.winowner = winowner;
    }

    public String getWinprodid() {
        return winprodid;
    }

    public void setWinprodid(String winprodid) {
        this.winprodid = winprodid;
    }

    public String getWinprodkey() {
        return winprodkey;
    }

    public void setWinprodkey(String winprodkey) {
        this.winprodkey = winprodkey;
    }

    public String getUseragent() {
        return useragent;
    }

    public void setUseragent(String useragent) {
        this.useragent = useragent;
    }

    public Integer getChecksum() {
        return checksum;
    }

    public void setChecksum(Integer checksum) {
        this.checksum = checksum;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Hardware)) {
            return false;
        }
        Hardware other = (Hardware) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "servlet.Hardware[id=" + id + "]";
    }

}

Minha Implementação do Hibernate:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */



/**
 *
 * @author Messias Bittencourt
 */

package dao.hibernate;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;

import dao.HardwareDao;
import dto.Hardware;
import exceptions.*;
import jdbc.Hibernate;

public class HardwareDaoImpl extends Hibernate implements HardwareDao {

	@SuppressWarnings("unchecked")
	public List<Hardware> getAll() throws HardwareException {
		Session session = getSession();
		try{
			Criteria criteria = session.createCriteria(Hardware.class);
                        System.out.println("Estou no HardwareDaoImpl");
			return criteria.list();
		}catch(Exception e){
			e.printStackTrace();
			throw new HardwareException(e);
		}
	}
        public Hardware getById(Integer id){
            Hardware hardware = new Hardware();
            return hardware;
        }
}

Meu Hibernate

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jdbc;

/**
 *
 * @author Messias Bittencourt
 */


import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import dao.*;
import dao.hibernate.*;
import dto.*;
import factory.DaoFactory;

public class Hibernate extends DaoFactory {
	
	private static HardwareDao hardwareDao;

	private static final SessionFactory sessionFactory;

	static {
		System.out.println("INICIOU CONFIGURACAO");
		try {
			sessionFactory = new AnnotationConfiguration().configure()
			.addAnnotatedClass(Hardware.class)
			.buildSessionFactory();
		} catch (Throwable ex) {
			ex.printStackTrace();
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static Session getSession() throws HibernateException {
		return sessionFactory.openSession();
	}
	
	public static SessionFactory lookup() {
		System.out.println("RECUPERANDO SESSION FACTORY " + sessionFactory);
		return sessionFactory;
	}
	
	public static Session getCurrentSession() {
		return sessionFactory.getCurrentSession();
	}

	public HardwareDao getHardwareDao() {
		if (hardwareDao == null)
			hardwareDao = new HardwareDaoImpl();
		return hardwareDao;
	}

}

Meu XML do hibernate:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--
    Document   : hibernate.cfg.xml
    Created on : 29 de Janeiro de 2009, 09:13
    Author     : Messias Bittencourt
    Description:
        Purpose of the document follows.
-->
<hibernate-configuration>
  <session-factory>
    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost/banco</property>
    <property name="connection.username">root</property>
    <property name="connection.password"/>
    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>
    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>
    <!-- Disable the second-level cache -->
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>
    <mapping class="dto.Hardware"/>
  </session-factory>
</hibernate-configuration>

E minha SQL… para que… se alguem puder… me ajudar…



/*Table structure for table `hardware` */

DROP TABLE IF EXISTS `hardware`;

CREATE TABLE `hardware` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `DEVICEID` varchar(255) NOT NULL,
  `NAME` varchar(255) DEFAULT NULL,
  `WORKGROUP` varchar(255) DEFAULT NULL,
  `USERDOMAIN` varchar(255) DEFAULT NULL,
  `OSNAME` varchar(255) DEFAULT NULL,
  `OSVERSION` varchar(255) DEFAULT NULL,
  `OSCOMMENTS` varchar(255) DEFAULT NULL,
  `PROCESSORT` varchar(255) DEFAULT NULL,
  `PROCESSORS` int(11) DEFAULT '0',
  `PROCESSORN` smallint(6) DEFAULT NULL,
  `MEMORY` int(11) DEFAULT NULL,
  `SWAP` int(11) DEFAULT NULL,
  `IPADDR` varchar(255) DEFAULT NULL,
  `ETIME` datetime DEFAULT NULL,
  `LASTDATE` datetime DEFAULT NULL,
  `LASTCOME` datetime DEFAULT NULL,
  `QUALITY` decimal(4,3) DEFAULT '0.000',
  `FIDELITY` bigint(20) DEFAULT '1',
  `USERID` varchar(255) DEFAULT NULL,
  `TYPE` int(11) DEFAULT NULL,
  `DESCRIPTION` varchar(255) DEFAULT NULL,
  `WINCOMPANY` varchar(255) DEFAULT NULL,
  `WINOWNER` varchar(255) DEFAULT NULL,
  `WINPRODID` varchar(255) DEFAULT NULL,
  `WINPRODKEY` varchar(255) DEFAULT NULL,
  `USERAGENT` varchar(50) DEFAULT NULL,
  `CHECKSUM` int(11) DEFAULT '131071',
  PRIMARY KEY (`DEVICEID`,`ID`),
  KEY `NAME` (`NAME`),
  KEY `CHECKSUM` (`CHECKSUM`),
  KEY `DEVICEID` (`DEVICEID`),
  KEY `ID` (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
Tem registros com a data zerada ou nula, sendo assim não podem ser representada por um TimeStamp do Java.

Tem registros com a data zerada ou nula, sendo assim não podem ser representada por um TimeStamp do Java.

Posso setá-lo como o que para resolver este problema?