0

我在使用 JPA 1.0 映射旧数据库时遇到问题。出于数据挖掘的目的,数据库被非规范化存储。我把它浓缩成一个简单的例子,希望能澄清这个问题。假设我有以下两个表:

Table ITEMS
  PKEY  GROUPID  NAME
  1     1        'AX'
  2     1        'AY'
  3     2        'BX'
  4     2        'BY'

Table XENTITY
  PKEY  ITEMGROUPID  NAME
  1     1            'E1'
  2     1            'E2'
  3     2            'E3'

我基本上想要完成的是从 XENTITY 访问所有具有 GROUPID 的项目,该 GROUPID 存储在 XENTITY 的 ITEMGROUPID 列中。Java-class-wise 这应该看起来像下面的代码片段。

class Item {
}

class XEntity {
    public Set<Item> getItems();
}

因此,对于 XENTITIE 'E1'、'E2',我会得到项目 'AX'、'AY' 而对于 'E3',我会得到 'BX'、'BY'。

我不确定如何用 JPA 映射这种情况。不幸的是,几次试错尝试让我两手空空。我非常感谢这方面的任何帮助。

提前致谢,

亚历克斯

4

1 回答 1

0

您在这里有一个非常罕见的多对多关联,我怀疑您是否可以通过映射获得所需的信息。您可能应该使用特定的查询来获得您想要的内容:

select item from Item item where item.groupId = :groupId
于 2011-07-11T15:41:19.863 回答