【问题标题】:Populating persistent attributes from transient attributes in Oracle ADF 12.1.3从 Oracle ADF 12.1.3 中的瞬态属性填充持久属性
【发布时间】:2014-10-22 23:09:21
【问题描述】:

我对 JDeveloper 和 Oracle ADF 非常陌生。在我的用例中,我的实体所基于的表具有一个非自动递增的主键。 (DB2)。要求 DBA 自动增加它现在不是一个选项。或者向 DBA 询问几乎任何事情,就此而言。由于表 PK 中没有序列定义,我无法使用简洁的 Groovy 表达式来自动递增。这是我尝试过的: - a) 在视图对象中创建了一个名为 idGenerated 的瞬态属性,并使用查找 pk 列的最大值的 SQL 查询填充它。 b) 尝试使用以下表达式填充 ViewObject id Persistent 字段:idGenerated+1。

这会导致空指针异常,因为 idGenerated 最终为空。 :(。有什么方法可以在不借助 EJB 的情况下执行此操作?老实说,编写 EJB 类来执行此操作似乎完全是矫枉过正。

【问题讨论】:

  • 我无法帮助你解决你的问题,但这听起来像一个糟糕的工作环境
  • 这是具有固定架构的预先存在的表吗?如果您能够指定 PK 的类型,则解决方案相对简单
  • 是的,很遗憾。预先存在的表,无法修补表。我应该在 ADF 中解决它。呃

标签: java groovy oracle-adf jdeveloper


【解决方案1】:

我认为这不会起作用 - 属性的值设置得太晚(通过查询),无法在 groovy 表达式中使用。 当我遇到类似的问题时,我只是扩展了 EO 并编写了自定义 Java 来获取 idGenerated 值并在属性的 Getter 方法中递增它。我会从那里开始。

【讨论】:

    【解决方案2】:

    我的建议是:在实体对象中添加瞬态属性,然后将其添加到实体对象的视图对象属性中。大部分时间这对我都有帮助。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 2014-03-29
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      相关资源
      最近更新 更多