sqlserver hibernate日期映射

时间:2013-12-18 09:35:45

标签: java sql sql-server hibernate

我有一个SQLServer,我正在使用hibernate将实体映射到我已经拥有的表。 该表有一个“timestamp”[field_date] timestamp NOT NULL类型的字段,这是该表唯一的日期。

我已经尝试将它映射到像这样的实体:

@Column(name="field_date")
private Date date;

甚至

@Column(name="field_date",columnDefinition="TIMESTAMP")
private Date date;

但每次我尝试对该实体执行select时,都会得到类型为

的SQLServerException
 Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from timestamp to TIMESTAMP is unsupported.

1 个答案:

答案 0 :(得分:6)

1)尝试将其映射到Java类java.sql.Timestamp。

http://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html

此外,我会尝试从您的注释中删除它 columnDefinition = “时间戳”

2)这是另一个尝试的映射 所以,你也可以尝试这种方法。

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CreatedOn", nullable = false)
public Date getCreatedOn() {
    return this.createdOn;
}

public void setCreatedOn(Date createdOn) {
    this.createdOn = createdOn;
}

3)这就像2)但是如果你想要的话就可以使用它 类字段的映射(不适用于getter)。

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