启动时JPA列的默认值

时间:2014-08-12 22:08:28

标签: jpa annotations

我有一份每个午夜都有的工作,我正在使用JPA创建表格。我想在每次启动作业时为列(对于当前数据库中存在的所有行)分配默认值,然后在作业期间,我将根据某些逻辑为该列分配不同的值。

例如:

@Column(name = "delete_YN?")
private String deleteYN = "Y";
//getters setters here

我希望此列具有默认值" Y"每次我的工作开始时(在上一次运行中插入的每一行都应该将列值作为" Y"在作业开始时)并且作业分配值" N"通过一些逻辑到列。最后,我将能够看到哪些行具有Y值以及哪些行具有该列的N值。我这样做了吗?这样可以或者应该使用columnDefinition注释吗?这与columnDefinition批注有什么区别?

1 个答案:

答案 0 :(得分:2)

@Column columnDefinition的JavaDoc

   /**
     * (Optional) The SQL fragment that is used when
     * generating the DDL for the column.
     * <p> Defaults to the generated SQL to create a
     * column of the inferred type.
     */

您应该使用的columnDefinition(对于Oracle)

@Column(name="delete_YN", columnDefinition="varchar2(1) DEFAULT 'Y'`")

但我认为你的方式更好,因为对于columnDefinition,你要绑定到db。

我建议您使用这些链接.... link1link2

我希望我已经为您提供了有关您问题的所有答案。