【发布时间】:2015-06-21 04:16:57
【问题描述】:
我正在使用 Hibernate 4.3.8 和 SQLite 数据库 (sqlite-jdbc-3.8.7.jar)。一些映射对象包含Calendar-attributes,例如startDate 和 endDate。在 Hibernate 以yyyy-MM-dd 格式读取日期时遇到问题(例如 2015-01-01)后,我在 hibernate.cfg.xml 中添加了以下行:
<property name="connection.date_string_format">yyyy-MM-dd</property>
现在可以从数据库中读取,但是当我保存对象时,Hibernate 应该以正确的格式保存日期,但会保存自 1970 年以来的毫秒数。之后,再次从数据库中读取会导致错误,因为列现在具有1427410800105 之类的值,这当然不是正确的格式。顺便说一句,我使用的是here 的 SQLiteDialect,应该没有问题。
是否有一些注释可以帮助我?
就个人而言,我只想在配置或方言中更改一些东西,我不想遍历我所有的对象并在那里进行更改。当然我也不想把Calendar的类型改成Date,因为这意味着对代码的改动太多了。
更新:使用@Temporal(value = TemporalType.DATE) 不起作用。列条目保持不变。
UPDATE2:@Column(columnDefinition = "calendar")也是如此
【问题讨论】:
标签: java hibernate sqlite date datetime