Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何定义锡耶纳和GAE中的一对多关系?_Java_Google App Engine_Siena - Fatal编程技术网

Java 如何定义锡耶纳和GAE中的一对多关系?

Java 如何定义锡耶纳和GAE中的一对多关系?,java,google-app-engine,siena,Java,Google App Engine,Siena,假设我有两个领域模型:作者和书。所以作者可以有一本或多本书 从锡耶纳的文档中,似乎可以看出: public class Author extends Model { @Id public Long id; public String name; public Book book; } 但我期待的是: public class Author extends Model { @Id public Long id;

假设我有两个领域模型:作者和书。所以作者可以有一本或多本书

从锡耶纳的文档中,似乎可以看出:

public class Author extends Model {

    @Id
    public Long id;

        public String name;


    public Book book;
}
但我期待的是:

public class Author extends Model {

    @Id
    public Long id;

        public String name;


    public Book book;
}
公共类作者扩展模型{

    @Id
    public Long id;

    public String name;

    public List<Books> books = new ArrayList<Book>();
}
@Id
公共长id;
公共字符串名称;
public List books=new ArrayList();
}
因此,在我的代码中,我可以执行以下操作:

public class Author extends Model {

    @Id
    public Long id;

        public String name;


    public Book book;
}
bookbook1=新书(),boo2=新书()

作者=新作者(); 作者。书籍。添加(第1册); 作者。书籍。添加(第2册); author.insert()

但从文档中看,这似乎并不正确


问题是什么是正确的解决方案?

请记住,Siena基于NoSQL概念,因此没有SQL中的连接。 无论如何,你可以自然地设计一个one2many关系

在传统的锡耶纳,您可以使用自动查询这样编写:

class Author {
...
 @Filter("author")
 public Query<Book> books; // this is called an "automatic-query"
...
}

class Book {
...
    Author author;
...
}
它插入作者和与作者关联的书籍(但如果您删除作者,它将不会删除书籍,因为siena不管理此类级联并允许您这样做)

你可以先阅读这里的文档,然后询问锡耶纳谷歌集团的问题,如果可以,我们会帮助你

List<Book> theBooks = books.asList();
List<Book> theFilteredBooks = books.asQuery().filter("...", "...").fetch();
Author author = new Author("name");
author.books.add(new Book("title1"), new Book("title2"), new Book("title3"));
author.insert();