In meiner SQL Server 2000 - Datenbank, habe ich einen Zeitstempel (in Funktion nicht in Datentyp) Spalt vom Typ DATETIME
namens lastTouched
Satz 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 @Basic
zu setzen (optional = true)
, aber das löst eine Ausnahme aus, die besagt, dass die Datenbank keine null
Werte für die TIMESTAMP
Spalte 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.