gpt4 book ai didi

Grails hasOne 关联

转载 作者:行者123 更新时间:2023-12-02 16:03:14 28 4
gpt4 key购买 nike

这两种 hasOne 语法有什么区别?

class Project {
.......
............
static hasOne = Employee

// static hasOne = [employee:Employee]
}

我注意到第一个创建了多对多关系(3 个表),但它应该是多对一(2 个表),就像我在 Employee 类中一样:
static hasMany = [projects:Project]

第二个工作正常:
static hasOne = [employee:Employee]

我正在使用 Grails 2.2.0,我什至在 Grails 2.0.3 中尝试过,但结果是一样的。

谢谢

最佳答案

我认为第一个变体根本没有任何意义。你可以定义一个 belongsTo back-ref 没有为此指定一个字段,例如,这可以用于级联事物。
hasOne 的情况恰恰相反:您希望有一个明确的一对一,这使得明确指定引用是合乎逻辑的:

static hasOne = [employee:Employee]

最常见的使用情况 hasOne是当您想要建立一对一的关系,但又不想修改所引用的域类时,这样您就不必引入更多的复杂性和/或迁移旧表。

在我看来,第一个变体是无用的,并且不会产生错误,因为......缺乏 GORM 开发人员的时间? ;)

关于Grails hasOne 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009266/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com