grails - 字段属性如何影响Grails中的域建模?

标签 grails groovy dns

可以说,我的Grails应用程序中有一个名为Tag的域类。

class Tag {
    String name // line number 1
    User user  // Line number 2
        static constraints = {
        }
    static belongsTo = [User, Post]
}

我借助于User关键字在TagbelongsTo之间创建了一种关系。但是我对line number 2(即User user)有疑问。现在将此代码放在我的Tag类中会以任何方式影响TagUser之间的关系,或者只是我们在belongsTo关键字中提供的内容无关紧要?

还有什么工具可视化 Grails应用程序中任何类之间的关系?

最佳答案

带有多个类的belongsTo通常令人怀疑,因为这意味着实例将与其他几个域对象处于组合关系中。以我的经验,这仅在您知道一个在设置另一个时始终是null时才有用(但仍然,您可能更喜欢让TagUserTagPost派生一个Tag类)。我建议您删除belongsTo之一(可能是Post)。

PostUser类中,您可能具有hasMany关系。创建关系就足够了,不必在belongsTo中添加Tag。使用belongsTo的唯一好处是更新或删除UserPost也会级联并保存Tags

如果您的Tag用例是常规用例(例如stackoverflow上的标记),则您尝试创建多对多关系(一个用户有很多标签,一个标记有很多用户。发布时也一样)。您可以在多对多关系中使用belongsTo来指示谁拥有该关系。阅读the documentation on many-to-many以了解这种关系如何工作。

关于您的最后一个问题,IntelliJ具有集成的Domain类依赖关系可视化功能。

关于grails - 字段属性如何影响Grails中的域建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8321471/

相关文章:

grails - Grails:当我重新编译文件时(使用数据源时)服务器崩溃

grails - Grails hasMany关系查询

grails - 为什么我不能捕获 Groovy 的 MissingMethodException?

grails - 无法在grails中调用方法本身

arrays - Groovy:从其自身的列表中删除和对象?

web-services - Grails 打包和命名约定

rest - 如何自定义grails Restful Controller 错误响应

c++ - 是否有任何 Windows 函数可以使用域名获取所有 OU(组织单位)名称?

Java 无法从 AIX 解析 DNS 地址 : UnknownHostException

c - 在 IPv6 中使用 resolv.h 的名称解析器