想象一下,例如,您希望在域类中存储金额。一个简单的方法是这样的:
class Account {
BigDecimal amount
}
但是,如果您不想将您的金额简单BigDecimal
处理,而是以Money
类型为例,那么您可以在其中定义一些额外的便利方法,例如货币转换。
类似
class Account {
Money amount
}
会导致将其存储在另一个表中。
所以我的问题是:我如何定义一个将在数据库中存储为BigDecimal的类Money
?
答案 0 :(得分:1)
您可以使用an embedded class创建一个单独的Money
类,该类存储在Account
表中。
class Account {
Money amount
static embedded = ['amount']
}
class Money {
BigDecimal amount
def asDollar() {
amount
}
def asEuro() {
amount / 1.3
}
}
将两个类(Account
和Money
)放入域文件夹中的一个groovy文件中,以避免创建额外的表格。
另一种方法是使用custome hibernate type。