我真的不能使用实体bean,但他们现在正在盯着我。JPA实体映射没有可用的外键
我们有几个相互关联的表,但没有外键,我们也不能添加任何表。对于这个问题,数据库不能改变,这是不可能的,但作为一个不同的解决方案,我们可能会创建视图。无论如何...
我有3个表格。 LOCATION,LINKS和ENDPOINT和额外的盐,我们一个LINKS_TYPE表。
LOCATION表有一个主键LOCATIONID,它是一个包含位置ID的字符串。
LINKS表具有作为LINKID主键 列LINK_ATTR_VALUE_A包含端点的主键 列LINK_ATTR_VALUE_B其包含地点的主键。 其中包含了LINKS_TYPE主键
端点表中的列LINKTYPEID有一个主键点名
LINKS_TYPE已主键LINKTYPEID 列LINKTYPEA(定义表名的文本字符串它的链接) 列LINKTYPEB(文本字符串定义它链接到的表名称)
现在即使LINKS_TYPE被提及,我现在不需要担心,因为在这个数据库实例中没有其他链接。
我想在我的LOCATION实体中定义一个成员'List endPoints' 从我的理解中,这将是@OneToMany。 请记住,这里没有外键可以帮助,而且永远不会有。
这是我定义的,你可能会意识到我不知道我在做什么的映射......
@OneToMany (cascade=CascadeType.ALL)
@JoinTable (name = "ENDPOINT",
joinColumns = @JoinColumn (
name = "LINK_ATTR_VALUE_B"
),
inverseJoinColumns =
@JoinColumn (
name = "LINK_ATTR_VALUE_A"
)
)
private List<EndPoint> endPoints;
它很可能来自这样的:d 但文档AINT太大,并且Ive有序ejb 3帮助书,但我没有时间完成这本书映射之前:D
我们使用TopLink与jdeveloper 11g和该weblogic服务器事情和Oracle 10g作为数据库。
当使用serviceFacade客户端进行查询时,一切似乎都正确(因为工作空间已经死亡,我不得不重新创建项目以使客户端工作)。 它在我看来生成完美的查询来检索正确的数据。 然而,它没有结果。
我愿意给尽可能多的信息,只是不知道需要什么。 但我知道我的映射很可能是错误的,这是因为我不了解映射。
有人可以帮助我吗?
谢谢。
谢谢。我会尝试一些你的建议,如果我仍然卡住,我会画出可爱的图表和所有那些jaz并张贴在这里:D thanx – guyumu 2009-07-29 09:06:30
好的我正在成功地映射出我们的整个数据模型。 我会更新这个,我是怎么做到的......现在只需要做一些管理。 我选择你的文章作为答案,因为它解释了我可用的有效选项,以及我需要理解的概念。感谢那。 – guyumu 2009-07-29 14:48:37