java - Oracle Hibernate 时间戳/日期映射问题

标签 java spring oracle hibernate jpa

映射我的表时遇到问题。我正在使用 Oracle DB,我的表 ->> test_time 使用表中的时间戳类型使用 2 列(最初我只想存储日期,因此使用日期但不起作用)。 下面是我的模型类,当我在oracle中使用日期类型时,我尝试过java.sql.Date类,但它不起作用。现在我使用 java.util.Date 类,就像我在 Oracle 中使用 Timestamp 一样,它仍然无法工作。无法理解,我实际上应该做什么才能使其发挥作用。



import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

@Entity
@Table(name = "test_time ")
public class TestTime 
{


    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="CUST_SEQ1")
    @SequenceGenerator(sequenceName = "edu_id", allocationSize = 1, name = "CUST_SEQ1")
    private int edu_id;


    @JsonSerialize(as = Date.class)
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
    @Temporal(TemporalType.DATE)
    private Date batch_start_year;

    @JsonSerialize(as = Date.class)
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
    @Temporal(TemporalType.DATE)
    private Date batch_end_year;


    public int getEdu_id() {
        return edu_id;
    }

    public void setEdu_id(int edu_id) {
        this.edu_id = edu_id;
    }

    public Date getBatch_start_year() {
        return batch_start_year;
    }

    public void setBatch_start_year(Date batch_start_year) 
    {
        this.batch_start_year = batch_start_year;
    }

    public Date getBatch_end_year() {
        return batch_end_year;
    }

    public void setBatch_end_year(Date batch_end_year) {
        this.batch_end_year = batch_end_year;
    }

}

我在表中添加了数据,以检查 get 方法。它既不插入任何内容,也不从表中获取任何内容。

最佳答案

您可以尝试使用 Joda-Time 库。 Download it from maven repo .

您必须更新两个日期列,如下所示:

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
@DateTimeFormat(pattern = "dd-MM-yyyy")
private DateTime batch_start_year;

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
@DateTimeFormat(pattern = "dd-MM-yyyy")
private DateTime batch_end_year;

这里DateTime应该是org.joda.time.DateTime

关于java - Oracle Hibernate 时间戳/日期映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978650/

相关文章:

java - 如何将 TestNG 参数传递给 Cucumber?

java - 在 JGoodies WindowsLookAndFeel 中更改 JButton 的颜色

database - 在不使用 Oracle 客户端软件的情况下通过命令行连接到 Oracle 数据库?

c# - OracleDataReader 只返回分页查询的最后一行

java - "Could not find or load main class"使用命令行

java - 如何在 Java EE 容器中设置 LDAP 连接池?

java - Spring 批处理 : Tasklet with multi threaded executor has very bad performances related to Throttling algorithm

Spring Boot 数据嵌入式 Cassandra

sql - 甲骨文 SQL : How to show empty weeks/weeks without data?

java - Jface tableviewer 中的 ColumnLabelProvider 和 ITableLabelProvider 有什么区别?