# Noch drei Fragen zu JPA



## peez (9. Okt 2009)

Nachdem ich jetzt JPA starten kann und auch schon Test-Daten geschrieben habe, möchte ich das jetzt in ein existierendes Projekt einfügen.

Das Datenmodell existiert eigentlich schon und das möchte ich gerne auch beibehalten. Ist das im Normalfall auch das übliche Vorgehen, dass man das Datenmodell nicht von JPA erstellen lässt?

Die Tabelle 'sequence'. Wozu wird die benötigt und kann man die Benutzung irgendwie ausschalten?

Bei einer Member-Variable vom Typ Calendar oder Date, das in ein Datetime feld in der mysql Datenbank gespeichert wird, bekomme ich folgende Fehlermeldung:

```
Exception Description: The attribute [geburtsdatum] from the entity class 
[class de.stiffi.PhysioPrax.BusinessObjects.APerson] does not specify a temporal type.
 A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar.
```
Kann JPA nicht mit Datetime?


----------



## MrWhite (9. Okt 2009)

Doch, natuerlich kann JPA Dates verarbeiten.

Das geht so, wie hier beschrieben:

Temporal Type DATE : Calendar DateJPAJava Tutorial

Du kannst die Annotation natuerlich auch direkt ueber den getter schreiben.

Ich denke, auch, dass ein generiertes Schema fuer die meisten Anwendungen zu unflexibel ist. Es ist also voellig normal, auf ein vorhandenes Schema zu mappen.


----------



## maki (9. Okt 2009)

> Die Tabelle 'sequence'. Wozu wird die benötigt und kann man die Benutzung irgendwie ausschalten?


Damit werden die IDs erzeugt/verwaltet, du kannst dieses Verhalten mit der GeneratedValue Annotation beeinflussen, per default wird die strategy TABLE verwendet, zumindest bei EclipseLink.

Ansonsten kann ich nur empfehlen, immer die attribute und nicht die Getter/setter zu annotieren.


----------



## MrWhite (9. Okt 2009)

maki hat gesagt.:


> Ansonsten kann ich nur empfehlen, immer die attribute und nicht die Getter/setter zu annotieren.



Warum?


----------



## maki (9. Okt 2009)

MrWhite hat gesagt.:


> Warum?


Man hat nicht autom. für alle Instanzvariablen Getter/Setter, dann müsste man doch nur für JPA diese implementieren, nicht so gut imho.
Bei Persistenz geht es doch darum, den *internen* Zustand eines Objektes zu speichern etc., da passt die Sache mit den annotierten Zugriffsmethoden nicht so gut ins Bild


----------



## MrWhite (10. Okt 2009)

Danke fuer die erhellende Antwort.


----------

