GORM关系映射

时间:2013-01-16 20:11:41

标签: grails gorm

我有两个域类.A request应该映射到colorcolor域有3个不同的选项黄色,红色,绿色(稍后可能会有更多选项(条目))。因此,当用户保存新的request时,我希望它与colors之一相关联。在request _form我将select Colors.list()选项中的黄色,红色和绿色。注意:这是我的真实模型的简单示例。

问题:

  • 我应该使用哪种映射关联? (我希望每个request与一个color

  • 相关联
  • 当我从表单输入时,如何将color存储在request中?

2 个答案:

答案 0 :(得分:0)

为了保持颜色,你有几个选择:

  1. 如果color是用户提供的,则保存为字符串,或者不是来自预定义的集合。
  2. 为您预期拥有的每个Color值使用或创建枚举。如果您只有三种颜色是黄色,红色和绿色,那么这绝对是您的最佳选择。
  3. 然后,在域上,您只需要定义一个名为color的字段(枚举类型或字符串),它将作为varchar保存在数据库中。

    在您的控制器中,当请求来自表单时,它将以params对象的名称存储在params.yourColor对象中,即{{1}}。

答案 1 :(得分:0)

因此,您的选择框选项应该具有颜色的id作为值。如果颜色域类称为颜色,请求域类将只有Color color。如果您正在使用数据绑定,只要您的选择框的名称为color,它就应该很好。如果您没有使用数据绑定:

new Request(...color: Color.get(params.nameOfSelectBox))