我看到jOOQ还在其元数据中添加了默认值:
public class Kampagne extends TableImpl<KampagneRecord> {
this.AKTIV = createField("AKTIV",
SQLDataType.VARCHAR(1).nullable(false)
.defaultValue(DSL.field("'J' ", SQLDataType.VARCHAR)),
this,
"die Kampagne ist aktiv, d.h. noch nicht abgeschlossen (markiert) resp. ist abgeschlossen (nicht markiert)",
new Varchar2ToBooleanConverter());
在创建新记录时是否可以添加这些默认值?
这样测试才能成功?
KampagneRecord record = new KampagneRecord();
assertTrue(record.getAktiv();
您可能会问为什么我需要这个?我在用户界面中使用记录,并希望复选框已基于绑定到模型的记录设置为默认值。
答案 0 :(得分:1)
当前未实现。为了获得正确的值,可能需要数据库评估各种可能的DEFAULT
表达式。一个简单的例子是CURRENT_TIMESTAMP
,它应该对应于:
在您的特定情况下,它显然是可行的,因为它是一个常量,没有任何上下文歧义。 You could extend the code generator and generate some custom code sections in records(和POJO(如果使用它们))。然后,该自定义代码部分将包含一个实例初始化程序,它将与每个构造函数调用一起运行:
{
set(KAMPAGNE.AKTIV, true);
// Other default initialisations
}