我正在使用 Spring JPA 并将以下实体映射到 H2 数据库字段:
@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映射到booleanjava 类型,但是,我不确定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 服务器定义正常吗?
我在使用 JPA 保存之前进行转换:
re.setIsActive(tt.isActive());
re.setCbDate(LocalDate.parse(tt.getCobDate()));
re.setCreatedDate(LocalDate.now());