我有一個名爲createTimestamp的字段。這是數據庫在插入時創建的。吸氣看起來是這樣的:JPA Entity CreateTimestamp在爲空後爲空
@Column(name = "create_timestamp", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", insertable = false)
public ZonedDateTime getCreateTimestamp() {
return createTimestamp;
}
然而,當我的服務調用DAO(春季庫)創建實體的創建時間戳爲空。
吾道方法來創建:
@Override
public int insert(AntennaSpec antennaSpec) {
super.save(antennaSpec);
logger.info("Antenna Spec " + antennaSpec.getAntennaCode() + " created");
return antennaSpec.getAntennaSpecId();
}
我的REST資源類調用該服務通過調用Create方法創建的實體。該方法返回新創建的實體的ID。在資源中,然後我調用我的服務來返回傳遞該id的實體,但create timestamp爲null。我已經做了什麼來完成填充是在我的資源,我已經分離了實體,然後再次獲取實體。這有效,但我不喜歡將detach
暴露給我的服務或資源類。
任何幫助,將不勝感激。
你可以發佈你的表DDL嗎?當hibernate爲你生成數據庫時,會使用'columnDefinition',如果你使用liquibase,例如DDL一定不需要匹配。 – Andreas
道歉。我忘了提及hibernate沒有設置爲我生成數據庫。只是爲了驗證現有的數據庫適用於我的實體。 –
這是一個想法......你看看INSERT語句的SQL,併爲人們提供表格的DDL。然後調試是可能的... – DN1