grails3 hasMany,一对多关系
参考:http://docs.grails.org/latest/ref/Domain%20Classes/hasMany.html
对象说明:
作者:Author
书:Book
Author拥有多个Book
数据库会建立3张表:
author、book、 author_book(一_ 多)
domain:
class Author {
String name
static hasMany = [books: Book]
static constraints = {
}
}
class Book {
String title
static constraints = {
}
}
数据库:

页面视图:
create.gsp页面添加:
<g:form action="save">
<fieldset class="form">
<f:all bean="author"/>
<!-- 这里 ↓-->
<g:select name="books" from="${com.o2o.Book.list()}" size="5" multiple="yes" optionKey="id"
value="${author?.books}" />
<!-- 这里 ↑-->
</fieldset>
<fieldset class="buttons">
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.
label', default: 'Create')}" />
</fieldset>
</g:form>

============================================================================
也可以通过代码自己控制关系:
@Transactional
def saveDemo() {
def author = new Author();
author.name = "张三";
def book2 = new Book(title: "书2");
def book3 = new Book(title: "书3");
Set<Book> books=new HashSet<Book>();
books.add(book2);
books.add(book3);
//主要是下面这行代码
author.addToBooks(books);
author.errors.each{
println "it:"+it
}
author.save(flush:true);
render "ok";
return ;
}
本文介绍如何在 Grails 3 中实现一对多的关系管理,包括定义 Author 和 Book 的模型关系,并展示了如何在 GSP 页面上进行数据绑定及通过代码控制这种关系。
1544

被折叠的 条评论
为什么被折叠?



