【问题标题】:Is there any difference between "belongsTo" constraint and just being a field in Grails?“belongsTo”约束和只是作为 Grails 中的一个字段之间有什么区别吗?
【发布时间】:2016-03-13 01:06:28
【问题描述】:

我创建了Child 域并为其创建了 2 个父级。我宣布为一个领域的父母。我在belongsTo 约束的帮助下声明了另一个父级。

打包multipleparentsgrails

class Child {

    Parent2 parent2

    static belongsTo = [parent1: Parent1]

    static constraints = {
    }
}

这些方式有什么区别吗?

如何消除差异?我可以同时拥有belongTo 和会员吗?我可以添加具有成员的级联吗?

【问题讨论】:

    标签: grails grails-orm grails-3.0


    【解决方案1】:

    是的,belongsTo 定义了级联。如果 parent1 被删除,则 child 也被删除,因为它属于 parent1。如果 parent2 被删除,Grails 不会自动为你删除 child。

    因此,在这种情况下,声明孩子属于父母不会对孩子非常友好:-)

    您可以通过几种不同的方式定义belongsTo,这允许您在单独的字段上定义它或声明新字段。有关详细信息,请参阅 Grails 文档,它们有很好的使用示例。

    【讨论】:

      【解决方案2】:

      belongsTo 在父子关系中起着重要作用。这里belongsTo中指定的类是关系的Parent / Owner。

      以下可能是正常情况下的一些比较 has a 和 belongs To:

      1. belongsTo 将引用的类标记为关系的所有者,而 has a 的情况并非如此

      2. 您无需担心与休眠相关的级联,因为关系会自动处理,即您可以指定级联类型但不需要提供实现,否则在has a 的情况下您必须使用 GORM DSL 之类的东西.

      3. 最后但同样重要的是,belongsTo 还强制指定关系所有者,而在 has a 的情况下,约束是障碍。

      最后但同样重要的是,它也可能对 gsp 脚手架产生影响,但不确定。

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2016-09-20
        • 1970-01-01
        • 2014-03-15
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-08
        • 1970-01-01
        相关资源
        最近更新 更多