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.
按该TemporalTypeJavaDoc中,TemporalType.DATE映射到java.sql.Date,正如你所看到的,因为没有时间组件:
为了符合SQL的定义,实例
DATE包含的毫秒值java.sql.Date必须通过在与实例关联的特定时区中将小时,分钟,秒和毫秒设置为零来"标准化".
| 归档时间: |
|
| 查看次数: |
2732 次 |
| 最近记录: |