之间有什么区别
static belongsTo [作者:作者]
和
static belongsTo =作者
让我们考虑两个域类。
Class Author{
String name
}
Class Books{
String name
static belongsTo = Author
}
当静态belongsTo =作者保留在Books域中时,它对db没有影响。但是, static belongsTo = [author:Author] 会创建对Author类的反向引用,并且db中也有author_id列。那么,实际上单独使用 static belongsTo = Author 的是什么呢。 这是在grails docs(http://grails.github.io/grails-doc/latest/ref/Domain%20Classes/belongsTo.html)中进行的。
另外,使用以下两个之间有什么区别:
Class Books{
String name
static belongsTo = [author : Author]
}
Class Books{
String name
Author author
}
static belongsTo = [author:Author] 仅用于级联目的,是真的还是有不同的用例。
任何人都可以详细解释这些内容,而无需将其与hasOne或hasMany相关联。提前谢谢。
答案 0 :(得分:1)
多对多关联需要使用belongsTo
而不使用反向引用。例如,假设您有以下域类:
class Book {
String name
Author author
static hasMany = [categories: Category]
}
class Category {
String name
static hasMany = [books: Book]
}
如果您尝试按原样使用它们,则会出现如下异常:
在多对多关系中没有在域类[class Book]和[class Category]之间定义所有者。示例:static belongsTo = Category
解决方案是使其中一个域类成为多对多关联的所有者。使用我的示例,我认为让Category
所有者更有意义。但是,后引用不起作用,因为可能有多个Category
。所以,这是没有反向引用的belongsTo
:
class Book {
String name
Author author
static hasMany = [categories: Category]
static belongsTo = Category
}
答案 1 :(得分:0)
如果您使用author
,则会将类型为Author
的名为static belongsTo = Author
的属性添加到类中作为后引用。 public AuthorizeFromConfigAttribute(string Role)
{
var RolesFromConfig = (PlRoleConfiguration)ConfigurationManager.GetSection("PlRoles");
foreach (PlRoleElement Element in RolesFromConfig.Elements)
{
Role = Role.Replace(Element.Name, Element.Group);
}
this.Roles = Role;
}
不会发生。