Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring JPA实体将LocalDate和LocalDateTime字段映射到Sql Server_Java_Sql_Sql Server_Spring Data Jpa - Fatal编程技术网

Java Spring JPA实体将LocalDate和LocalDateTime字段映射到Sql Server

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;

我正在使用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
映射到
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将使用此设置生成什么,并将其作为正确的类型