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