В моей базе данных SQL Server 2000 у меня есть столбец отметки времени (в функции, не в типе данных) типа DATETIME
с именем lastTouched
, установленным на getdate()
в качестве значения по умолчанию / привязки.
Я использую сгенерированные классы сущностей JPA Netbeans 6.5, и у меня это есть в коде
@Basic(optional = false)
@Column(name = "LastTouched")
@Temporal(TemporalType.TIMESTAMP)
private Date lastTouched;
Однако, когда я пытаюсь поместить объект в полученную базу данных,
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.generic.Stuff.lastTouched
Я попытался установить для @Basic
значение (optional = true)
, но возникает исключение, в котором говорится, что база данных не допускает значения null
для столбца TIMESTAMP
, чего нет в конструкции.
ERROR JDBCExceptionReporter - Cannot insert the value NULL into column 'LastTouched', table 'DatabaseName.dbo.Stuff'; column does not allow nulls. INSERT fails.
Ранее я использовал это для работы в чистом Hibernate, но у меня есть смысл переключиться на JPA и не знаю, как сказать, что этот столбец предполагается генерировать на стороне базы данных. Обратите внимание, что я по-прежнему использую Hibernate в качестве слоя сохранения JPA.