Java Spring JPA实体将LocalDate和LocalDateTime字段映射到Sql Server
我正在使用Spring JPA,并已将以下实体映射到H2数据库字段:Java Spring JPA实体将LocalDate和LocalDateTime字段映射到Sql Server,java,sql,sql-server,spring-data-jpa,Java,Sql,Sql Server,Spring Data Jpa,我正在使用Spring JPA,并已将以下实体映射到H2数据库字段: @Entity @Table(name = "REQUEST") public class Request implements Serializable { @Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private long id;
@Entity
@Table(name = "REQUEST")
public class Request implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "CORR_ID")
private String corrId;
@Column(name = "CB_DATE")
private LocalDate cbDate;
@Column(name = "ACTIVE")
private boolean active;
@Column(name = "CREATED_DATE")
private LocalDate createdDate;
@Column(name = "LAST_UPDATED")
private LocalDateTime lastUpdated;
}
-- H2 DB Script
CREATE TABLE REQUEST
(
ID BIGINT AUTO_INCREMENT PRIMARY KEY,
CORR_ID CHAR(36) NOT NULL,
CB_DATE DATE NOT NULL,
ACTIVE BOOLEAN DEFAULT FALSE NOT NULL,
CREATED_DATE DATE NOT NULL,
LAST_UPDATED DATETIME NOT NULL
);
我不确定以下SQL Server列定义是否正确映射到Java。我已经看到BIT
映射到boolean
java类型,但是我不确定Date
和DateTime
是否会分别正确映射到LocalDate
和LocalDateTime
--MS SQL SEVER SCRIPT
CREATE TABLE REQUEST
(
ID BIGINT AUTO_INCREMENT PRIMARY KEY,
CORR_ID CHAR(36) NOT NULL,
CB_DATE DATE NOT NULL,
ACTIVE BIT DEFAULT FALSE NOT NULL,
CREATED_DATE DATE NOT NULL,
LAST_UPDATED DATETIME NOT NULL
);
请澄清这一点。我是否需要对Java代码进行任何调整?我的SQL server定义是否正确
在使用JPA保存之前,我正在进行转换:
re.setIsActive(tt.isActive());
re.setCbDate(LocalDate.parse(tt.getCobDate()));
re.setCreatedDate(LocalDate.now());
我猜SQL Server本身的版本、SQL Server JDBC驱动程序和使用的Hibernate方言在这里起着决定SQL Server端哪些类型是正确的或可接受的作用 这是太多的变量,无法说明什么。我将让Hibernate创建表,并查看它生成了什么。您需要确定必须支持哪个SQL Server版本。基于此,我将选择最好的方言和JDBC驱动程序,然后再次查看Hibernate将使用此设置生成什么,并将其作为正确的类型