在我的Grails 2.5.X应用程序中,我有一个如下所示的域类:
class FormData {
String submittedFields
Boolean submitted
static constraints = {
submittedFields nullable: true
}
static mapping = {
// can I do something here to map submitted to a generated
// column of the form_data table
}
}
我想将submitted
属性映射到form_data
表的生成列,即由SQL语句创建的列
alter table form_data add submitted tinyint
GENERATED ALWAYS AS (if(submitted_fields is null,0,1));
具体而言,当我从域模型创建架构时,应该创建此生成的列,例如,通过运行schema-export
脚本。
submitted
映射到生成列的结果是相应的域类属性应该是只读的,或者至少为它赋值应该没有效果。
答案 0 :(得分:1)
如果你只想在数据库端处理列的值,并且不希望从grails / hibernate端插入或更新它。您可以将列设置为可插入:false updatetable:false
static mapping = {
submitted insertable:false, updateable:false
}
现在,即使在grails中更改了值,也不会在数据库中更新新值。