与JDO和GAE的多对一关系

时间:2012-12-04 14:27:18

标签: java google-app-engine jdo

我在整个网站上搜索过 但是,甚至没有一个例子说明如何与jdo建立多对一的关系。 https://developers.google.com/appengine/docs/java/datastore/jdo/relationships

但是我找不到怎么做。

假设我有这个DB:

Cars(CarID,OwnerID,...)
Owner(OwnerID,...)

我想为新车创造新的实体 - 我该怎么做?

如果所有者已经在数据库中,我不想为所有者创建另一个实体但是如果他不是我想要新主人。

感谢您提供有关如何处理它的任何示例代码或博客链接。

编辑: 它似乎你认为它的双向关系。 所以我觉得你不太了解我。 我们可以说我们不是在谈论汽车和车主 我们现在正在谈论类型和歌曲

类型 - 不需要了解宋! 宋需要知道他的类型!

我的课程是:

public class Genre {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
long id;
@Persistent
String genre;

} AND:

public class Song{
long id;
    @Join(name="GENRE_JOIN")
Genre genre;

}

提前感谢!

2 个答案:

答案 0 :(得分:0)

所有GAE文档都说请参阅DataNucleus JDO文档以获取完整的详细信息,因此我不明白他们为什么要提供所有内容的示例。由于您的关系貌似(不是您定义的)所有者方面的1-N BIDIR关系,以及Car侧的N-1 BIDIR关系http://www.datanucleus.org/products/accessplatform_3_1/jdo/orm/many_to_one.html JDO规范也有很多例子。

答案 1 :(得分:0)

class Owner {
    @Persistent(mappedBy = "owner")
    private List<Car> cars;
}

class Car {
    @Persistent
    private Owner owner;
}

Car car = new Car();
//search for the owner.
car.setOwner(owner);