有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JPA实体:从Oracle日期列获取小时、分钟和秒

我无法从Oracle数据库(dd/mm/yyyy hh/mm/ss)获取完整的日期信息

在db级别,在我想要接收的列中,我设置了测试值:

update my_table
set my_date_column=(to_date('2011-06-15 15:43:12', 'yyyy-mm-dd hh24:mi:ss'));

但在我的JPA实体中,我有:

@Column(name = "MY_DATE_COLUMN")
@Temporal(TemporalType.DATE)
private Date dateDetailed;


public Date getDateDetailed() {
    if (this.dateDetailed!= null) {
        return this.dateDetailed;
    }
    return null;
}

public void setDateDetailed(Date dateDetailed) {
    if (dateDetailed!= null) {
        this.dateDetailed= dateDetailed;
    } else {
        this.dateDetailed= null;
    }
}

每次我访问我的对象时,它都会给我一个没有小时、分钟和秒的日期

我试着用TemporalType。时间戳,但在这种情况下,我还需要更改db中的列类型(我希望避免)

有什么建议吗


共 (2) 个答案

  1. # 1 楼答案

    通过使用时间戳时态类型,您将获得java日期数据类型的日期和时间部分,但Oracle将使用时间戳数据类型创建一列。要解决此问题,如果需要日期数据类型,可以使用列批注的columnDefinition参数,例如:

    @Column(name = "MY_DATE_COLUMN", columnDefinition = "DATE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dateDetailed;
    
  2. # 2 楼答案

    它是TemporalType.DATE 您需要时间或时间戳。日期只是没有时间的日期。时间戳表示为一个数字