作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设使用约束将优先级属性创建为字符串:
priority(inList:['Critical', 'Major', 'Normal', 'Enhancement'])
enum Priority { CRITICAL, MAJOR, NORMAL, ENHANCEMENT } or
enum Priority { CRITICAL('Critical'), MAJOR('Major'), NORMAL('Normal'), ENHANCEMENT('Enhancement')
Priority priority
...
static mapping = { priority enumType:"ordinal"}
... NORMAL('Minor')
MINOR or MINOR('Minor')
最佳答案
它们出现的顺序无关紧要。在内部,Grails 只会在给定字符串表示的情况下进行 valueOf 查找。现在,如果您没有适本地更新数据库,更改一个名称将导致问题。如果您知道这会发生,那么在生产中,您可能会重新考虑枚举并使用类型表作为引用。这样,您只是使用 ID,因此字符串值是什么并不重要。
我倾向于使用 2 的某种组合。我知道硬常数和快速常数的枚举通常会在生产中保持稳定。但是在用户需要能够添加/修改/删除各种值的情况下键入表,或者如果我知道我将拥有某种类型的数据仓库,由于外键,键入表会更好/更快,使用您的工厂存储系统(MySQL、Postgres 等)的运行。
关于grails 枚举或字符串属性, future 的数据库更新有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042512/
我是一名优秀的程序员,十分优秀!