java - columnDefinition ="DATE DEFAULT SYSDATE",不起作用

标签 java jpa

我正在使用此代码:

@Column(name = "FECHA_CREACION_TIMESTAMP",columnDefinition="DATE DEFAULT SYSDATE", insertable=false)
@Temporal(TemporalType.TIMESTAMP)
private Date fechaCreacionTimestamp; 

但是当我向表中插入一些数据时,它没有日期,只有类似 null 的日期。

最佳答案

更新答案:(现在我知道您正在使用 Oracle)

您需要确保该列不包含在插入语句中。为此,您需要更新您的 @Column 注释,例如:

@Column(..other properties.., insertable = false)

参见here了解更多详情。

现在,您还需要确保执行插入后生成的值在您的域对象中可用。如果您正在使用 Hibernate,并且不介意使用 Hibernate 注释,您可以将以下注释放在您的字段上。

@org.hibernate.annotations.Generated(org.hibernate.annotations.GenerationTime.INSERT)

Hibernate 将自动为您执行所需的 select 查询。

如果您没有使用 Hibernate,则需要在执行插入后自行进行选择以获取生成的值。 JPA 没有任何内容来指定这应该自动完成。

关于java - columnDefinition ="DATE DEFAULT SYSDATE",不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16672034/

相关文章:

java - Hibernate 不使用 HSQL 和 Spring 创建表

java - 使用 Sniffy 指定的 Oracle URL 无效

java - Spring MVC 应用程序语法错误

java - 带空格的字符串赋值返回 null

java - 如何在 java 中读取或解析 MHTML (.mht) 文件

java - 判断字符串是否为十六进制数的递归方法 - Java

java - 使 JPA 和 ModelMapper 在实体更新中工作

java - 捕获异常的 Spring 事务

java - 与适配器持有者混淆,如何防止 getView 方法修改不适当的 ListView 行?

java - 使用 TopLink 在 JPA 查询中作为命名参数列出