【问题标题】:Too many objects match the primary key oracle.jbo.Key太多对象匹配主键 oracle.jbo.Key
【发布时间】:2013-12-26 14:21:18
【问题描述】:

当我尝试在primary key 包含多个字段的某个视图对象中搜索时,我收到此错误:Too many objects match the primary key oracle.jbo.Key

用例:

Jdeveloper 11.1.2.3 我有Entity object 称为someTable 这个表有三个字段A,B and C 其中primary key 由两个字段A and B 组成。

我从someTable 创建了两个不同的View object 实体对象someTableVO1someTableVO2。在视图对象somtableVO1 中归档AList Of Value(LOV),数据来自AsomeTableVO2 中归档。

在应用程序中,我有一个搜索页面,其中包含在somTableVO1 中提交的A 的下拉列表。根据某些条件,下拉列表值不是静态的。下拉列表的值可以根据在someTableVO1 上执行的select 查询进行更改,它基于C 的已提交字段C,这是primary keyNOT 部分。

该页面显示具有正确值的下拉列表。但是,我有一个ValeChangeListener 方法,当用户从下拉列表中选择某个值时,它就会被激活。

问题是:

当我执行此方法时,会发生错误Too many objects match the primary key

假设:

我认为问题在于主键的多个字段。诅咒在primary key 的一部分(即在一个归档AB)中存在重复,但AB 的组合始终是唯一的。

注意事项:

1.我通过在SQL Developer 中运行查询来检查它,它没有显示任何重复值。

2.我没有附上代码,因为我认为问题不在于(如何做)而在于(做什么)。

希望思路清晰

【问题讨论】:

  • 您的主键不是唯一的。做到这一点。
  • 拖曳字段的组合始终是唯一的,正如问题中提到的那样。你能澄清一下吗...
  • 看来 Oracle 不同意你的观点。
  • 好的,我找到了问题的根本原因,但我还不能解决它。它与主键的多个字段无关。相反,它是关于递归值列表 (LOV)。在我的例子中,属性 A 是一个值列表,它的值来自视图对象,形成相同的实体对象,具有相同的数据和相同的主键

标签: java oracle view jdeveloper composite-primary-key


【解决方案1】:

问题已解决。

我的目标是将A 表单someTableVO1 显示为价值列表,我试图通过创建相同Entity object 的价值列表来实现这一目标。我发现这是一种错误的方法(如果我穿坏了,请纠正我)。要在ADF 技术中实现这一点,我应该执行以下操作:

  1. 只需将视图对象从Data Controls 拖放到页面。

  2. 将出现选项列表,询问您希望如何显示视图对象,例如(表单、图形、表格、单选......)。

3.选择Single Selection -> ADF one Selection

4.选择您希望向用户显示的属性作为值列表。

就是这样……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2021-01-26
    相关资源
    最近更新 更多