您有查询说: -
select p from profiles p, group g where p.profileId = g.profileId
您将如何使用JDO实现它。它可能是基本的,但我是JDO的新手,并且无法改变一些有意义的东西。
答案 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 查询一样,未绑定变量的查询可能会变得很慢,因此使用时需要谨慎。