ドメインクラスプロパティにデフォルト値を設定する方法はありますか? 私はPayMethodと呼ばれるクラスを持っています。ここでは、 'name'プロパティをデフォルトで 'cash'にします。私はこのテーブルを作成するときにこのデフォルト値が必要ですが、これは制約を使用して可能ですか?grailsドメインクラスでデフォルト値を設定する方法
package abc
import util.UserUtil
import embed.AuditUser
class PayMethod {
String name = "Cash"
AuditUser audit = new AuditUser()
static embedded = ['audit']
static constraints = {
name blank: false, size: 5..30, unique: true
}
static mapping = {
table 't01i0010'
id column: 'F_ID', precision: 4, scale: 0
name column: 'F_NAME', length: 30, defaultValue: 'Cash'
version column: 'F_REVISION'
}
def authUserService
int insertIndex = 0
int updateIndex = 0
static transients = ['authUserService', 'insertIndex', 'updateIndex']
def beforeInsert = {
audit.entryUser = UserUtil.user()
audit.entryDate = new Date();
}
def beforeUpdate = {
audit.reviseUser = UserUtil.user()
audit.reviseDate = new Date();
}
def afterInsert = {
if(insertIndex == 0){
def user = audit.entryUser
def date = audit.entryDate
log.info "POST INSERT => ENTERER: ${user} ENTERED: ${date}"
}
insertIndex++
}
def afterUpdate = {
if(updateIndex == 0){
def user = audit.reviseUser
def date = audit.reviseDate
log.info "POST UPDATE => REVISE: ${user} REVISED: ${date}"
}
updateIndex++
}
}
私はこのテーブルを作成すると、デフォルト値の名前= '現金'をデータベースに設定します。 –
'defaultValue'を使用しても機能しませんか?私が言ったように、それはまだリリースされていない2.2でしか動作しません。これまではデータベースを手動で更新することができます。 –
なぜそこにネストされた一重引用符を入れなければならないのですか? – Philippe