首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定义Grails域对象关系

如何定义Grails域对象关系
EN

Stack Overflow用户
提问于 2017-04-26 09:50:05
回答 1查看 330关注 0票数 0

嗨,我是Grails的新手,我想就如何在Grails中为以下场景定义域类征求您的专家意见:

  1. 买主可以买很多东西。
  2. 交货时可以包含许多物品,而不是买方购买的所有物品,因为有些物品将在稍后交货。
  3. 交货不能包含买方尚未购买的任何新物品。

因此,它们之间的关系如下:

  1. 一个买主可以有许多物品。
  2. 一个买主可以有很多次交货。
  3. 一次交货可以有许多物品。

我已经将域类定义为这样;但是结果。专家们能告诉我我做错了什么吗?非常感谢!

代码语言:javascript
运行
复制
class Buyer {

    static constraints = {
    }

    String  buyerName
    static hasMany = [purchases : GoodsPurchased]    

}

class GoodsPurchased {

    static constraints = {
        delivery nullable:true
    }

    String goodsName
    static belongsTo = [ buyer: Buyer, delivery : Delivery ]

}

class Delivery {

    static constraints = {
    }

    Date    deliveryDate
    static  belongsTo = [ buyer : Buyer ]
    static  hasMany = [ purchases : GoodsPurchased ]

}

交货可以有买方购买的一件或多件物品,因为并非所有物品都是交货所必需的。如何在域类中定义-只能包含买方以前购买过的物品的交付?我们如何在Grails中实现这种限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-12 10:07:49

如果要在域类中实现这一点,可以在域类中插入或更新对象之前,在beforeInsert()和beforeUpdate()中检查这些业务规则。

您可以在这里获得更多有关这方面的信息:http://gorm.grails.org/6.0.x/hibernate/manual/

但是,实现这些业务逻辑的最佳位置仍然在Services中,或者限制GSP中供用户选择的列表。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43630697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档