[英]Is it possible to map logical OR value from database table's column into the list of objects using JPA/Hibernate (preferably JPA)?
[英]How do I insert MySQL table's default datetime value in a column when using annotated JPA objects (Hibernate JPA provider)?
我有一個要為其編寫JPA層的MySQL數據庫(舊版)。 我將Hibernate用作JPA提供程序,並已將數據庫表與帶注釋的Java類進行映射。
數據庫中的一列包含時間戳記,並且具有默認值(全零,即0000-00-00 00:00:00,但是無論此默認值是否是其他東西,問題均相同):
releasedate TIMESTAMP DEFAULT '0000-00-00 00:00:00'
注釋如下:
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "releasedate", nullable = false, length = 19)
public Date getReleasedate() {
return this.releasedate;
}
通常,在創建新條目時,我需要默認值,因此在持久保存它之前,我不會在Java對象中設置日期(它為null)。
但是,這導致日期設置為現在,而不是默認值。
我可以將“ insertable”注釋元素設置為“ false”,但這是不可取的,因為有時候我確實想在創建時設置自定義日期。
我也試過在我的注釋提供列定義(如提到這里 ),但無濟於事。
我也有閱讀全零日期時間值的問題(如提到這里 ),並通過設置JDBC屬性“zeroDateTimeBehavior”到“convertToNull”解決了這個。 這解決了閱讀問題,但仍然存在寫作問題。
有沒有人對在這種情況下該怎么辦有任何想法?
干杯!
通常,空值將觸發數據庫使用該字段的默認時間戳。
我不確定如果您的會話是無狀態的,那么該實體可能會將空值保留在java字段中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.