0

私はJavaでGAEを使用しています。私は学生とコースの関係を持つサンプルアプリケーションを作成しています。私は多くの支部と多くの学生を抱えています。各ブランチには多くの学生がいる可能性があります。

    ObjectifyService.register(Course.class);
    ObjectifyService.register(Student.class);
    Course course = new Course();
    course.setName("ss");
    course.setBranch("cs");
    ofy().save().entity(course).now();

    Student stu = new Student();
    stu.setName("student1");
    Key<Course> courseKey = new Key<Course>(Course.class, course.getId()); // getting error here
    stu.setCourse(courseKey);
    System.out.println("saving");
    ofy().save().entity(stu).now();

この関係をobjecitfy4で定義する方法がわかりません。チュートリアルhttp://www.eteration.com/objectify-an-easy-way-to-use-google-datastore/に従いました

ありがとう。

4

3 に答える 3

1

使用できるキーは 2 つあります。

  1. 最初にGAEの低レベル com.google.appengine.api.datastore.Key
  2. 第二に、objectify のcom.googlecode.objectify.Key.

どちらも Objectify で使用できます (ボンネットの下では、最終的に低レベル API に変換されます)。

どちらもパブリックコンストラクターを持たないため、それらと一緒に使用することはできませんnew.

低レベルのキーでは、KeyFactory.createKey("Course", course.getId()). 使用するオブジェクト化キーを使用するcom.googlecode.objectify.Key.create(Course.class, course.getId())

于 2012-12-15T12:16:13.210 に答える
0

Objectify を使用する場合、 condition(KeyFactory.createKey("Course", course.getId()) ) に対してキーを作成する必要がある場合は、コース オブジェクトで Id フィールドをインデックスで指定する必要があります。

于 2012-12-19T08:58:17.520 に答える