我正在开发一个grails项目,其中我有一个包含3个字段的域类。我的要求是只输入2个字段,第3个字段将填充两个字段的总和。任何人都可以发给我代码。 thnks
答案 0 :(得分:3)
以上链接中的示例
class Product {
Float price
Float taxRate
Float tax
static mapping = {
tax formula: 'PRICE * TAX_RATE'
}
}
答案 1 :(得分:2)
根据您的需要,这里有两种完整的方法。
如果您不需要存储第三个字段,这意味着它仅用于显示,您可以这样做:
class MyDomain {
int field1
int field2
static transients = ['field3']
getField3() {
field1 + field2
}
}
这样您就可以myDomain.field3
访问总和。
如果你需要存储它,比如因为它在计算中被大量使用,你可以使用事件来自动计算和存储总和,如下所示:
class MyDomain {
int field1
int field2
int field3
def beforeInsert() {
field3 = field1 + field2
}
def beforeUpdate() {
field3 = field1 + field2
}
}
这样做的好处是,无论创建或更新 ,都会填充第三个字段。
两个注释:
field3
而不是更新,请删除beforeUpdate
。updateField3
),然后调用它而不是硬编码。