从JDO中的连接表中保存和查询值的正确方法是什么?

时间:2014-03-14 14:25:08

标签: java jdo datanucleus

我有一个Google App Engine Web应用程序,我正在使用JDO与Cloud SQL实例进行通信。在我的数据库中,我有一个表“User”和一个表“Entity”。任何用户都应该能够“喜欢”一个或多个实体。所以我创建了一个连接表,其中userID和entityID作为复合主键。

我对这一切都不熟悉,我想知道如何在保存和加载“喜欢”方面做到这一点。保存类似时,我只需将userID和entityID发送到服务器并将其直接存储在连接表中。加载时,我想我只是做一个连接,但使用JDOQL似乎很难。我已经阅读了JDO中关于M-N关系的内容,并想知道我是否应该使用@Join注释来模拟我的实体类,并在User和Entity中都有一个列表。

我还不清楚这一切是如何运作的。对于抓取,我想延迟加载是正确的方法。因此,如果我理解正确,当我想要检索一个喜欢实体的用户列表时,我可以加载Entity-object,然后在仍然在事务内的实体上调用getUsers(),它将获取映射的用户在连接表? 如果我使用null或空列表为用户更新现有实体,那么连接表中的任何现有关系都不会被删除吗?

0 个答案:

没有答案