【问题标题】:Owned One-to-Many Relationships拥有一对多关系
【发布时间】:2011-09-02 04:31:44
【问题描述】:

我有两个班级:

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() 从 Dog 那里得到这个玩具吗?

2) 如果我这样做两次

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

这两个完全相同的玩具会在 datestore 中翻倍吗?
谢谢!

【问题讨论】:

    标签: java google-app-engine jdo


    【解决方案1】:
    1. 如果您执行“toy.setDog”,您还没有将玩具添加到狗玩具列表中......即关系是双向的,您必须设置双方。

    2. 什么玩具一模一样?如果您添加 2 个玩具,则您有 2 个玩具。他们字段的值无关紧要,只是身份很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2010-11-11
      • 2017-08-25
      • 2010-11-13
      • 2011-08-24
      • 2011-07-12
      相关资源
      最近更新 更多