我有一个用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 Item {
}
class XEntity {
public Set<Item> getItems();
}
对于XENTITIEs 'E1','E2',我将得到项目'AX', 'AY',对于'E3',我将得到'BX','BY'。
我不确定如何用JPA映射这样的情况。不幸的是,几次试错都让我空手而归。我将非常感谢在这方面的任何帮助。
提前感谢,
亚历克斯这里有一个非常不常见的多对多关联,我怀疑您能否通过映射获得所需的信息。你可能应该使用一个特定的查询来得到你想要的:
select item from Item item where item.groupId = :groupId