【发布时间】:2014-10-06 03:33:54
【问题描述】:
我有一个每天午夜运行的工作,我正在使用 JPA 创建表。我想在每次启动作业时为一列(对于当前数据库中存在的所有行)分配一个默认值,然后在作业期间我将根据某些逻辑为该列分配一个不同的值。
例如:
@Column(name = "delete_YN?")
private String deleteYN = "Y";
//getters setters here
我希望每次我的作业开始时此列都有一个默认值“Y”(上一次运行中插入的每一行在作业开始时的列值应该为“Y”)并且作业分配该值通过某种逻辑将“N”添加到列。最后,我将能够看到哪些行具有 Y 值,哪些行具有此列的 N 值。我这样做正确吗?这可以还是应该使用 columnDefinition 注释? this和columnDefinition注解到底有什么区别?
【问题讨论】:
-
您希望列名带有“?”在里面?
-
@NeilStockton 不,我不会保留“?”在列名中,但我认为这与我的疑问无关:)
-
@Alok 你解决了这个问题吗?否则请提供更多信息以更好地帮助您。
-
事实证明,在继续执行其他代码之前,我必须为该列显式地用“Y”值标记所有行。一个简单的更新命令就可以做到这一点。我在原始问题中提到的方法仅在创建新表开始时分配“Y”值。对于所有现有行,它不会使用该列的新值更改表。
-
你解决了这个问题吗?如果是,你是怎么解决的?
标签: jpa annotations