如何使Apache Cayenne尊重数据库默认值?

时间:2018-03-07 17:31:09

标签: java orm apache-cayenne

我有一个postgres数据库,其中包含一些默认值:

CREATE TABLE product (
    id serial,
    name text,
    created_at DEFAULT now(),
    price numeric DEFAULT 9.99
);

当我执行context.newObject(Product.class)时,如何让Cayenne尊重这些默认设置?

目前我正在挂钩onPostAdd回调,然后在那里设置我的默认值,不过我想知道这是否是唯一的方法呢?我不能以某种方式使用我的数据库默认值来保持它DRY

我正在使用Apache Cayenne 4.1。

1 个答案:

答案 0 :(得分:1)

不幸的是onPostAdd是你最好的选择。这是最坏的物体关系阻抗。作为卡宴作家之一,我很清楚这个问题。希望有一个干燥的解决方案。