gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:08:06 25 4
gpt4 key购买 nike

映射我的表时遇到问题。我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com