In meiner SQL Server 2000 - Datenbank, habe ich einen Zeitstempel (in Funktion nicht in Datentyp) Spalt vom Typ DATETIMEnamens lastTouchedSatz getdate()als den Standardwert / bindend.
Ich verwende die von Netbeans 6.5 generierten JPA-Entitätsklassen und habe diese in meinem Code
@Basic(optional = false)
@Column(name = "LastTouched")
@Temporal(TemporalType.TIMESTAMP)
private Date lastTouched;
Wenn ich jedoch versuche, das Objekt in die Datenbank zu stellen, erhalte ich Folgendes:
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.generic.Stuff.lastTouched
Ich habe versucht, das auf @Basiczu setzen (optional = true), aber das löst eine Ausnahme aus, die besagt, dass die Datenbank keine nullWerte für die TIMESTAMPSpalte zulässt , was nicht beabsichtigt ist.
ERROR JDBCExceptionReporter - Cannot insert the value NULL into column 'LastTouched', table 'DatabaseName.dbo.Stuff'; column does not allow nulls. INSERT fails.
Ich habe dies zuvor im reinen Ruhezustand zum Laufen gebracht, bin aber inzwischen auf JPA umgestiegen und habe keine Ahnung, wie ich sagen soll, dass diese Spalte auf der Datenbankseite generiert werden soll. Beachten Sie, dass ich immer noch den Ruhezustand als JPA-Persistenzschicht verwende.