【问题标题】:Create NHibernate created on column depending on the version column根据版本列创建在列上创建的 NHibernate
【发布时间】:2011-07-26 19:39:19
【问题描述】:

我正在尝试创建 created_on 列 - 此列应存储行创建的日期和时间。

我也在使用版本列 - 保存记录的最后更新时间的列,这是 Nhibernate 附带的。

我想要做的是在行插入数据库时​​将版本列值复制到 created_on 列。 意思是,如果版本被修改并且实体是新的(我们正在预刷新)我需要将版本列的值放在 created_on 列中,就是这样。

到目前为止,我只设法在插入后使用拦截器和覆盖 PreFlush 进行额外更新。

我正在使用带有 Oracle 的 Nhibernate 3 有什么建议吗?

【问题讨论】:

    标签: c# oracle nhibernate


    【解决方案1】:

    我对 Nhibernate 一无所知,但是……据我所知……为什么不使用数据库触发器?插入后触发器。

    或者,更简单(或过于简单),您可以使用默认值 sysdate 创建 created_on 列。

    【讨论】:

    • 我想我不明白你的问题/情况。
    【解决方案2】:

    听起来您正在使用“DB Timestamp”版本控制。您可以改用普通时间戳吗?如果您在代码中设置值,这将变得微不足道。

    另一种选择是将您创建的列设置为不可变(只读)并使用数据库级别的默认值 CURRENT_TIMESTAMP。如果您使用数据库设置版本列是正确的,这应该在插入的两列中为您提供相同的值。

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 2015-09-21
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多