启动时JPA列的默认值

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

例如:

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

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

最佳答案 @Column columnDfinition的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

我希望我已经给了你关于你问题的所有答案.

点赞