В моей базе данных SQL Server 2000 у меня есть метка timestamp (в функции не в типе данных) типа 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.