【发布时间】:2016-11-10 10:59:34
【问题描述】:
这是我的环境
Grails Version: 3.1.6
Groovy Version: 2.4.6
JVM Version: 1.8.0_51
build.gradle 中的休眠版本
compile "org.hibernate:hibernate-core:5.1.1.Final"
compile "org.hibernate:hibernate-ehcache:5.1.1.Final"
我希望像这样将枚举映射到 MySql:
| Field | Type | Null | Key | Default | Extra |
| logtype | enum('DEBUG','INFO'| NO | | NULL | |
但我没有得到它的工作。我在 Google 上搜索了一些建议,但没有让它们发挥作用。
这是我的代码:
package xxxx
class Template {
enum LogType {
DEBUG("DEBUG"), INFO("INFO")
String name
LogType(name){
this.name = name
}
}
Integer tplID
LogType lt
static constraints = {
tplID(nullable: true)
lt(nullable: true)
}
static mapping = {
table "Template"
id name: "tplID"
tplID column: "tplID", comment: "ID"
lt sqlType: "enum", column: "lt", enumType: "DEBUG"
}
}
我在这里阅读了文档 http://docs.grails.org/3.1.1/ref/Database%20Mapping/column.html
而且我不确定 enumType 的用法是否正确,任何人都可以使用它吗?
更新了,下面的代码还是不行
class Template {
enum LogType {
DEBUG("DEBUG"), INFO("INFO")
String name
LogType(name) {
this.name = name
}
}
LogType lt
static constraints = {
}
static mapping = {
table "Template"
lt sqlType: "enum", enumType: 'string'
}
}
【问题讨论】:
-
github.com/vahidhedayati/grails-queuemail-plugin/blob/master/… lt(enumType:'string',sqlType:'char(20)')
标签: mysql grails enums grails-orm