1

你有一个查询说: -

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

您将如何使用 JDO 实现它。它可能是基本的,但我是 JDO 的新手,无法搜索有意义的东西。

4

2 回答 2

0

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

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

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

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

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

于 2021-05-17T10:51:58.570 回答
-1

在 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
于 2014-10-30T11:14:38.887 回答