Jes*_*sky 4 java sql hibernate
我在Web服务器上使用Java和hibernate来保存到Oracle SQL数据库.我创建了一个Java Date
对象,但由于某种原因它到达数据库时,它只有日期而不是时间.例如,Date对象将说"2012年12月10日下午1:23:45",但在数据库中它只显示"10-DEC-12"
知道为什么会这样吗?以下是如何创建和保存日期的示例.
service.java
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Nos nos = new Nos();
nos.setTimeReceived( new Date() );
session.save( nos );
tx.commit();
Run Code Online (Sandbox Code Playgroud)
Nos.java
@Entity
@Table(name = "nos")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Nos
{
@Id
@GeneratedValue
private Long id;
@Basic(optional=false)
@Temporal(TemporalType.DATE)
@Column(name="timereceived")
private java.util.Date timeReceived;
// getters and setters
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 10
使用TemporalType.TIMESTAMP
,对应于a java.sql.Timestamp
.
按该TemporalType
JavaDoc中,TemporalType.DATE
映射到java.sql.Date
,正如你所看到的,因为没有时间组件:
为了符合SQL的定义,实例
DATE
包含的毫秒值java.sql.Date
必须通过在与实例关联的特定时区中将小时,分钟,秒和毫秒设置为零来"标准化".
归档时间: |
|
查看次数: |
2732 次 |
最近记录: |