Witam.
Straciłem już ładnych parę godzin i niestety nie potrafię rozwiązać mojego problemu. Zaczynam poznawać hibernate i niestety mam z tym pierwszy problem chodzi o mapowania już utworzonej i działającej bazy a w sumie to jednej tabeli na początek.
Mam taką tabelę:
CREATE TABLE IF NOT EXISTS `clients` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`imie` varchar(100) COLLATE utf8_polish_ci NOT NULL,
`nazwisko` varchar(100) COLLATE utf8_polish_ci NOT NULL,
`adres` varchar(200) COLLATE utf8_polish_ci NOT NULL,
`pesel` varchar(12) COLLATE utf8_polish_ci NOT NULL,
`tel` varchar(100) COLLATE utf8_polish_ci NOT NULL,
`uwagi` text COLLATE utf8_polish_ci,
`tel2` varchar(100) COLLATE utf8_polish_ci DEFAULT NULL,
`przystapienie` date DEFAULT NULL,
`rezygnacja` date DEFAULT NULL,
`polaczenie` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=108 ;
plik
hbm.xml wygląda następująco:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2013-10-31 16:00:28 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="Klienci" table="clients">
<id name="id" type="int">
<column name="id" />
<generator class="assigned" />
</id>
<property name="imie" type="java.lang.String">
<column name="imie" />
</property>
<property name="nazwisko" type="java.lang.String">
<column name="nazwisko" />
</property>
<property name="adres" type="java.lang.String">
<column name="adres" />
</property>
<property name="pesel" type="java.lang.String">
<column name="pesel" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" />
</property>
<property name="uwagi" type="text">
<column name="uwagi" />
</property>
<property name="tel2" type="java.lang.String">
<column name="tel2" />
</property>
<property name="przystapienie" type="date">
<column name="przystapienie" />
</property>
<property name="rezygnacja" type="date">
<column name="rezygnacja" />
</property>
<property name="polaczenie" type="org.joda.time.DateTime">
<column name="polaczenie" sql-type="datetime" />
</property>
</class>
</hibernate-mapping>
natomiast klasa wygląda tak
import java.io.Serializable;
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import org.joda.time.DateTime;
@Entity(name="klienci")
public class Klienci{
@Id
int id;
@Column(name="imie")
String imie;
@Column(name="nazwisko")
String nazwisko;
@Column(name="adres")
String adres;
@Column(name="pesel")
String pesel;
@Column(name="tel")
String tel;
@Column(name="uwagi",columnDefinition = "text")
String uwagi;
@Column(name="te2")
String tel2;
@Column(name="przystapienie")
Date przystapienie;
@Column(name="rezygnacja")
Date rezygnacja;
@Column(name="polaczenie")
DateTime polaczenie;
public int getId(){
return id;
}
public void setId(int id) {
this.id = id;
}
public String getImie() {
return imie;
}
public void setImie(String imie) {
this.imie = imie;
}
public String getNazwisko() {
return nazwisko;
}
public void setNazwisko(String nazwisko) {
this.nazwisko = nazwisko;
}
public String getAdres() {
return adres;
}
public void setAdres(String adres) {
this.adres = adres;
}
public String getPesel() {
return pesel;
}
public void setPesel(String pesel) {
this.pesel = pesel;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getUwagi() {
return uwagi;
}
public void setUwagi(String uwagi) {
this.uwagi = uwagi;
}
public String getTel2() {
return tel2;
}
public void setTel2(String tel2) {
this.tel2 = tel2;
}
public Date getPrzystapienie() {
return przystapienie;
}
public void setPrzystapienie(Date przystapienie) {
this.przystapienie = przystapienie;
}
public Date getRezygnacja() {
return rezygnacja;
}
public void setRezygnacja(Date rezygnacja) {
this.rezygnacja = rezygnacja;
}
public DateTime getPolaczenie() {
return polaczenie;
}
public void setPolaczenie(DateTime polaczenie) {
this.polaczenie = polaczenie;
}
}
Niestety podczas kompilacji dostaję komunikat"
Caused by: java.sql.SQLException: Value '1HenrykTestDzialkowa 13/4911111111131234 5171362 Klient na wĂłzku
0000-00-00
0000-00-002012-08-16 12:06:06 'can not be represented as java.sql.Date
Wydaje mi się że problem tkwi w mapowaniu daty ale przeglądając to forum wszędzie widziałem podobnie to zrobione.
Proszę o pomoc bo mnie już nieźle strzela.
Pozdrawiam
KB
Chyba ten błąd może wynikać z tego że nie każdy rekord ma uzupełnione pole przystąpienie i jest tam wartość 000000 ( czy da się to jakoś ominąć ?)