这是grails 2.4.4
个应用程序。大多数时候,我使用MySQL
,这总是有效的。它也适用于H2
。我只是以MSSQL
作为数据库引擎来解决这个问题。
我有以下枚举:
enum RenewalStatuses {
RETRIEVAL_COMPLETE('Retrieval Complete'),
STAGING_COMPLETE('Staging Complete'),
XML_COMPLETE('XML Complete'),
SUBMIT_COMPLETE('Submit Complete'),
CONVERT_FAILURE('Convert Failure'),
SUBMIT_FAILURE('Submit Failure')
private final value
RenewalStatuses(String value) {
this.value = value
}
@Override
String toString() {
value
}
}
在以下域中使用:
class RenewalStatus {
Date currentStatusDate
RenewalStatuses currentStatus
String errorText
static hasMany = [renewalStatusLogs: RenewalStatusLog]
static constraints = {
currentStatusDate nullable: false
currentStatus nullable: false, blank: false, maxSize: 20
errorText nullable: true, blank: false, maxSize: 200
}
static mapping = {
version false
currentStatusDate column: 'CurrentStatusDt'
currentStatus column: 'CurrentStatus'
errorText column: 'ErrorText'
}
}
当我尝试查询RenewalStatus或其列表时,我收到以下错误:
枚举类的未知名称值[XML Complete] [bla.foo.RenewalStatuses]
CurrentStatus
列是varchar
,包含枚举值属性中定义的值文本; XML Complete, Submit Failure, etc
。
同样,我在很多应用程序中使用此模式,但这是第一次使用MSSQL
支持的应用程序。