如何将整数(在数据库上)映射到字符串(在视图中)

时间:2012-06-01 09:07:12

标签: grails gorm grails-domain-class

我有一个域类:

class MyUser {

 ..

int sex
int qualification
int occupation

..
}

假设我想约束这些整数类别,例如:

occupation : [0:"not occupied", 1:"architect", 2:"student", 3:"policeman" and so on..]

我想在数据库上有整数值,并在我的视图中显示整数的字符串表示形式(这种行为可以自动搭建吗?)。

有没有办法以grails方式快速完成这项工作?

谢谢!

2 个答案:

答案 0 :(得分:0)

我建议使用一个对象代表职业......

class MyUser {
...
    int sex
    int qualification
    Occupation occupation
...
}

然后你的职业类看起来像这样......

class Occupation {
    ...
    String name
    ...
}

然而,如果你坚持使用枚举类型,你可以做这样的事情......

    public enum Occupation {
        GEEK(0, 'Geek'),
        NERD(1, 'Nerd'),

        final int id;
        final String name;

        Occupation (int id, String name) {
          this.id = id;
          this.name = name;
       }
    }

你的MyUser课程就像这样......

   class MyUser {
    ...
        int sex
        int qualification
        int occupation
    ...
    }

你gsp想要这样的东西......

 <g:select name="occupation" id="occupation"
                        from="${Occupation.values()}" 
                        value="${fieldValue(bean: user, field: 'occupation')}" 
                        optionKey="id"
                        optionValue="name"/>

这是未经测试但应该有效。享受。

答案 1 :(得分:0)

如果你愿意,你也可以使用map并通过控制器传递给它来查看....