示例代码:
class User { Book book}
与
class User { static hasOne = Book}class Book {String name}解决方法 hasOne关系会将密钥放在子对象上,因此在db中,如果只是在User上声明Book book,则可以使用hasOne而不是user.book_ID找到book.user_ID.如果使用grails schema-export,您将看到生成的DDL的差异.
这是带有hasOne的DDL:
create table book (ID bigint generated by default as IDentity (start with 1),version bigint not null,user_ID bigint not null,primary key (ID),unique (user_ID));create table user (ID bigint generated by default as IDentity (start with 1),primary key (ID));alter table book add constraint FK2E3AE98896CD4A foreign key (user_ID) references user;
这是关于用户的书籍的DDL:
create table book (ID bigint generated by default as IDentity (start with 1),primary key (ID));create table user (ID bigint generated by default as IDentity (start with 1),book_ID bigint not null,primary key (ID));alter table user add constraint FK36EBCB952E108A foreign key (book_ID) references book;
请注意,book表在第一个示例中有引用,用户在第二个示例中有引用.
答案很长:我强烈建议在GORM /集合/映射上观看Burt Beckwith’s presentation. GORM周围有很多很好的信息,以及描述与hasMany / belongsTo等关系的各种优点/问题的后果.
总结以上是内存溢出为你收集整理的Grails / Gorm:声明对象和描述关系之间的区别?全部内容,希望文章能够帮你解决Grails / Gorm:声明对象和描述关系之间的区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)