Java 映射SQL Server日期时间列

Java 映射SQL Server日期时间列,java,spring,spring-boot,spring-data-jpa,Java,Spring,Spring Boot,Spring Data Jpa,我使用Spring Boot和Spring Data JPA将实体映射到SQL Server数据库中的表,我已经为该表创建了一个@embeddedable复合键。有一列我想用作键的一部分,根据SQuirreL的说法,它的类型名是datetime,类名是java.sql.Timestamp。密钥类如下所示: @Embeddable public class MyEntityIdentifier implements Serializable { @Column(name = "LastU

我使用Spring Boot和Spring Data JPA将
实体映射到SQL Server数据库中的表,我已经为该表创建了一个
@embeddedable
复合键。有一列我想用作键的一部分,根据SQuirreL的说法,它的类型名是
datetime
,类名是
java.sql.Timestamp
。密钥类如下所示:

@Embeddable
public class MyEntityIdentifier implements Serializable {

    @Column(name = "LastUpdateDateTime")
    private Timestamp lastUpdateDateTime;

…但
lastUpdateDateTime
属性始终解析为null,且没有错误。我已检查,此列没有空字段。我还尝试解析
java.util.Date
,但没有成功。是否有其他类型我应该使用或我做错了什么?

Hibernate将通过添加
@Temporal
注释在内部转换为本地Java类型(即
Java.util.Date
,而不是
Java.sql.Timestamp

@Column(name = "LastUpdateDateTime")
@Temporal(TemporalType.DATE)
private Date lastUpdateDateTime;

如何映射到表?您可能正在使用不包含该列的查询或视图吗?对于
@Table
注释-列肯定在那里:/sql server jdbc驱动程序文档说java.sql.timestamp是正确的映射类型是的,看起来一切都很好。我被难住了。这个小傻瓜被钉死了,如果你遇到这个问题,请看下面的答案。我只是想补充一点,这个日期处理不是特定于Hibernate的,而是强制用于任何JPA实现。另外,如果你在项目中使用Spring JPA,请查看Spring提供的@DateTimeFormat注释。