繁体   English   中英

将MySql datetime映射到hibernate

[英]Map MySql datetime to hibernate

我的MySql数据库中有一个datetime字段。 典型条目如下: 2015-08-26 11:45:48

但是当它到达我的应用程序时,小时,分钟和秒始终是00:00:00

这是映射条目:

<property name="listingTime" column="listing_time"/>         

我的Java类中的字段是

private java.sql.Timestamp startTime;

我尝试在hibernate.cfg.xmllistingTime属性设置各种类型,但它不会更改全零。 我错过了什么?

更好地使用这样的注释:

...
@Column
@Type(type="timestamp")
private Date listing_time;

或者你可以这样做,如果你不想改变它,看看“可更新”

@Column(name = "created", nullable = false, updatable=false)
@Temporal(TemporalType.TIMESTAMP)
private Date created;

使用JPA,使用时间。

<entity class="com.package.of.my.entities.MyEntity" name="MyEntity">
    <attributes>
        <basic name="startTime">
            <temporal>TIMESTAMP</temporal>
        </basic>
    </attributes>
</entity>

使用Hibernate(hbm.xml),用户

<hibernate-mapping package="com.package.of.my.entities">
    <class name="MyEntity">
        <timestamp name="startTime" column="START_TIME" />
    </class>
</hibernate-mapping>

或者在注释中

@Basic
@Temporal(TemporalType.TIMESTAMP)
private java.sql.Timestamp startTime;

或者使用Long数据类型来存储时间戳。 因此,使用注释,您在实体中声明:

@Basic
private Long startTime;

public void setStartTime(Long startTime) {
    this.startTime = startTime;
}

public Long getStartTime() {
    return startTime;
}

在你的逻辑中,你做到了

Date dateStartTime = new Date();
entity.setStartTime(dateStartTime.getTime());

设置日期属性...和

Date dateStartTime = new Date(entity.getStartTime());

获取日期属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM