- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在将现有应用程序从 Grails 2.5 迁移到 3.1 时,我遇到了双向一对一关系的奇怪问题。
想象一个带有 User 和 Employee
的简单模型对象。 A User
代表通用用户帐户。并非所有用户都是员工,但所有员工都是用户。此外,员工可以引用经理、主管等(还有用户实例)。用户是关系的拥有方。
class User {
Employee employee
static mappedBy = [employee: "user"]
static hasOne = [employee: Employee]
static constraints = {
employee(nullable:true)
}
}
class Employee {
User user // represents employee's own account, a bi-directional one-to-one
User supervisor // represents a supervisor
static belongsTo = [user: User]
static constraints = {
user(unique:true)
supervisor(nullable:true)
}
}
supervisor_id
员工表的列被生成为
NOT NULL
,而在 Grails 2 中,它按预期可以为空(只有 user_id 不是 NULL)。
最佳答案
我不知道为什么您的代码可以与以前版本的 Grails 一起使用,但这是错误的。
当您使用 hasMany
和 belongsTo
,不需要在子对象中定义其他属性,也不需要使用mappedBy
父级的属性(property),与父级相同(属性(property)雇员在 User
)
Grails 不需要任何其他信息即可知道两个类的双向属性以及约束 user(unique : true)
两者都不。
所以你的类应该是这样的:
class User {
static hasOne = [employee: Employee]
static constraints = {
employee(nullable: true)
}
}
class Employee {
User supervisor // represents a supervisor
static belongsTo = [user: User]
static constraints = {
supervisor(nullable:true)
}
}
employee.user
user.employee
关于Grails 3 hasOne 可空性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39837621/
返回 $this->hasOne('App\Phone', 'foreign_key', 'local_key'); 我需要这两个表中的 hasone 关系。 在这两个表中,关系应该在父表和子表中的用
在登录模型中,我具有与图片表的实现关系 function picture () { return $this->hasOne('App\Picture'); } 现在我想要Picture.pic
这两种 hasOne 语法有什么区别? class Project { ....... ............ static hasOne = Employee // static h
我想对域关联进行反射(reflection),以自动为 RESTful WS(脚手架)生成 JSON/XML 格式的类描述 rune 件。在 HasOne 的情况下(据说是双向的),我试图在 Asso
我正在尝试将 leftJoin 添加到 hasOne 方法中,但它似乎不起作用。来自主表的数据存在,但不来自连接表。代码: public function getUser() {
我有两个模型: a) 食谱b) 用户 每个食谱都有一个用户。当 (REST) 请求食谱时,我还想在我的 JSON 答案中获取相关用户的名称,如下所示: { "id": 1, "user_id"
我是 Grails 的新手。 我可以使用“hasOne”或“hasMany”而不使用“belongsTo”到另一个域类吗? 提前致谢。 最佳答案 是的你可以。请参阅 Grails 文档中的示例:htt
要在 Grails 中创建一对一关系,我可以执行以下操作: class Person { static hasOne = [address: Address] } 在这种情况下,地址表具有其人
我对 NodeJS 和 SequelizeJS 比较陌生,并且我正在构建的查询面临 hasOne 问题,我想知道您对此问题的看法,以找出我出错的地方以及实现此查询的正确方法。 Association
我的表 下面是将 ad_type_id 作为外键并与 ad_type 关联的分类模板模型 'use strict'; module.exports = (sequelize, DataType
假设我有一个 grails 域类,它看起来像 class Person { Address address } 我也可以将其声明为 class Person { static hasOne
我在设置 hasOne 关系时遇到了一些问题,这可能是因为我错误地理解了该关系? 我有 2 个模型,一个用户模型和一个位置模型。我现在要添加的是用户和位置之间的关系,这意味着用户具有当前位置。但是,如
为什么 Laravel 的 Eloquent 坚持 hasOne 关系中的外键必须位于引用表中,而不是位于父表中? 我要求获得一般性的理解/丰富。 例如,来自 Laravel 文档:如果 User 有
在将现有应用程序从 Grails 2.5 迁移到 3.1 时,我遇到了双向一对一关系的奇怪问题。 想象一个带有 User 和 Employee 的简单模型对象。 A User代表通用用户帐户。并非所有
我有一些模型正在尝试关联。 一种模型是 Item,一种是 Slide,另一种是 Asset。 项目下方有多个幻灯片。 Assets 基本上是已上传的文件(图像、mp3 等),幻灯片是显示 Assets
为什么 Laravel 的 Eloquent 坚持 hasOne 关系中的外键必须位于引用表中,而不是位于父表中? 我要求获得一般性的理解/丰富。 例如,来自 Laravel 文档:如果 User 有
对于 belongsTo关系,我可以用dissociate ,但什么是等效于 hasOne ? 前任。 Phone属于User : $phone->user()->dissociate(); // s
所以我有2个模型,User & Profile,关系设置如下: /** * User belongs to many Profile * * @return \I
我有两个表: users 包含(id, name, email) id为主键。 users_details contains (user_id, address, city, postcode) us
我有 2 个表: "article": |id|name|text| "article_permissions" |article_id|val| 所以,我不想将 article_permis
我是一名优秀的程序员,十分优秀!