拥有一对多的关系

时间:2011-09-02 04:31:45

标签: java google-app-engine jdo

我有两个班级:

public class Dog {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent(mappedBy = "dog")
    @Element(dependent = "true")
    private List<Toy> toys;
}

public class Toy {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent
    private Name name;

    @Persistent
    private Dog dog;
}

1)如果我这样做

Toy toy = new Toy();
toy.setDog(dog); // dog is a Dog class
pm.makePersistent(toy);

我可以通过getToys()从狗那里获得这个玩具吗?

2) 如果我这样做两次

Toy toy = new Toy();
toy.setName("AAA");
toy.setDog(dog);
pm.makePersistent(toy);

两个完全相同的玩具会在日期商店中加倍吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 如果你做“toy.setDog”,你还没有将玩具添加到狗的玩具清单......即关系是双向的,你必须设置双方。

  2. 完全相同的玩具是什么?如果你添加2个玩具你有2个玩具。他们的领域的价值是无关紧要的,只是身份很重要。