如何实现JDO的连接查询

时间:2013-04-19 08:43:37

标签: jdo

您有查询说: -

select p from profiles p, group g where p.profileId = g.profileId

您将如何使用JDO实现它。它可能是基本的,但我是JDO的新手,并且无法改变一些有意义的东西。

2 个答案:

答案 0 :(得分:0)

在JDO和其他对象关系映射框架(如JPA)中,从元模型中推断出两个实体之间关系的连接条件。

在您的示例中,您可能有两个实体Profile和Group以及从Group到Profile的n-1关系。然后给出以下实体:

@PersistenceCapable
public class Group {
     private Profile profile;
     ...
}

@PersistenceCapable
public class Profile {
     ...
}

执行以下JDO查询将选择组引用的所有配置文件:

select g.profile from Group g

答案 1 :(得分:0)

在 JDOQL 中,你真的没有像 JOIN 这样的东西。正如@sihaya 提到的,检索一个对象也将获取其所有成员(取决于配置的获取类型(“eager”将加载所有内容,“lazy”将稍后加载))

查看文档,您可以使用类似的东西,称为“未绑定变量”:

<块引用>

未绑定的变量,用于替代 SQL 的 JOIN 操作

<块引用>

ObjectDB 支持未绑定变量,但 JDO 将其视为可选变量。带有未绑定变量的查询类似于 SQL 中的 JOIN 查询,因为必须针对每个候选对象检查变量的每个组合。就像 SQL 中的 JOIN 查询一样,未绑定变量的查询可能会变得很慢,因此使用时需要谨慎。

这是链接:https://www.objectdb.com/database/jdo/manual/chapter7