# @Temporal - AnnotationException



## klattiator (30. Apr 2009)

Hi, ich hab ein problem mit der @Tempral-Annotation:

die folgende Exception tritt ständig auf:

```
Exception in thread "AWT-EventQueue-0" org.hibernate.AnnotationException: @Temporal should be set on a java.util.Date or java.util.Calendar property: intro.Kunde.geburtsdatum
```

also das ist meine Entity-Klasse "Kunde":


```
package intro;

import java.io.Serializable;

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

@Entity
public class Kunde implements Serializable {

    private Integer id;
    private String vorname;
    private String nachname;
    private Date geburtsdatum;

    public Kunde() {
    }

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

    @Id
    @GeneratedValue
    public Integer getId() {
        return id;
    }

    @Temporal(javax.persistence.TemporalType.DATE)
    public Date getGeburtsdatum() {
        return geburtsdatum;
    }

    public void setGeburtsdatum(Date geburtsdatum) {
        this.geburtsdatum = geburtsdatum;
    }

    public String getNachname() {
        return nachname;
    }

    public void setNachname(String nachname) {
        this.nachname = nachname;
    }

    public String getVorname() {
        return vorname;
    }

    public void setVorname(String vorname) {
        this.vorname = vorname;
    }
}
```


kann mir aber nicht erklären warum der fehler kommt, denn die Temproal-Annotation steht ja wohl an der getGeburtsdatum()-Methode. anfangs hat das ja auch alles genauso funktioniert, dann hatte ich mal statt java.util.Date, java.sql.Date verwendet und mit einem mal ging nix mehr.
also ich find das ziemlich kurios :bahnhof:


----------



## maki (30. Apr 2009)

k. A. ob dass der Grund ist, würde aber prinzipiell nur Felder und nicht Methoden annotieren.


----------



## klattiator (30. Apr 2009)

nee das bringt leider auch nichts... der fehler is immernoch da


----------



## sparrow (30. Apr 2009)

Versuch mal die Klasse direkt anzusprechen statt über den Import, also:

```
package intro;
 
import java.io.Serializable;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Temporal;
 
@Entity
public class Kunde implements Serializable {
 
    private Integer id;
    private String vorname;
    private String nachname;
    private java.util.Date geburtsdatum;
 
    public Kunde() {
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    @Id
    @GeneratedValue
    public Integer getId() {
        return id;
    }
 
    @Temporal(javax.persistence.TemporalType.DATE)
    public java.util.Date getGeburtsdatum() {
        return geburtsdatum;
    }
 
    public void setGeburtsdatum(java.util.Date geburtsdatum) {
        this.geburtsdatum = geburtsdatum;
    }
 
    public String getNachname() {
        return nachname;
    }
 
    public void setNachname(String nachname) {
        this.nachname = nachname;
    }
 
    public String getVorname() {
        return vorname;
    }
 
    public void setVorname(String vorname) {
        this.vorname = vorname;
    }
}
```


----------



## klattiator (30. Apr 2009)

Also ich hab das Geburtsdatum mal aus der Klasse rausgenommen. Da kam dann erstmal kein Fehler mehr. Dann hab ich es wieder reingenommen und mit @Transient versehen. Ging auch noch. Und als ich es dann wieder mit @Temporal annotiert hab gings erstaunlicher Weise immer noch!! ???:L 

Kapier ich zwar nicht aber wenns wieder funktioniert is ja alles in Butter.


----------



## maki (30. Apr 2009)

Würde mir mal ansehen welchen Datentyp für das Feld die normale Temporal Annotation erzeugt, vielleicht liegt der der Hund begraben...


----------



## klattiator (30. Apr 2009)

sparrow hat gesagt.:


> Versuch mal die Klasse direkt anzusprechen statt über den Import



Ja hab ich jetzt gemacht. Wenn ichs aber importiere gehts auch noch...


----------



## tfa (30. Apr 2009)

Wahrscheinlich hast du das Projekt nicht kompiliert, oder nicht nicht deployt. Oder das falsche kompiliert oder deployt. Oder das falsche getestet. Typische unerklärlich Fehler, die auf einmal nicht mehr auftreten.


----------

