你有一个查询说: -
select p from profiles p, group g where p.profileId = g.profileId
您将如何使用 JDO 实现它。它可能是基本的,但我是 JDO 的新手,无法搜索有意义的东西。
你有一个查询说: -
select p from profiles p, group g where p.profileId = g.profileId
您将如何使用 JDO 实现它。它可能是基本的,但我是 JDO 的新手,无法搜索有意义的东西。
在 JDOQL 中,您实际上并没有像 JOIN 这样的东西。正如@sihaya 提到的,检索对象还将获取其所有成员(取决于配置的获取类型(“eager”将加载所有内容,“lazy”将稍后加载))
查看文档,您可以使用类似的东西,称为“未绑定变量”:
未绑定变量,用于替代 SQL 的 JOIN 操作
ObjectDB 支持未绑定变量,但 JDO 认为是可选的。带有未绑定变量的查询类似于 SQL 中的 JOIN 查询,因为必须针对每个候选对象检查每个变量组合。就像 SQL 中的 JOIN 查询一样,带有未绑定变量的查询可能会变得非常慢,因此在使用时需要谨慎。
在 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