1

例如,假设您想在域类中存储大量资金。一个简单的方法是这样的:

class Account {
    BigDecimal amount
}

但是,如果您不想像处理类型那样简单地处理您的金额怎么办BigDecimalMoney例如您定义了一些额外的便利方法,如货币转换。

所以像

class Account {
    Money amount
}

将导致将其存储在另一个表中。

所以我的问题是:如何定义一个Money在数据库中存储为 BigDecimal 的类?

4

1 回答 1

1

您可以使用嵌入式类来拥有一个单独的Money类,该类存储在您的Account表中。

class Account {
    Money amount
    static embedded = ['amount']
}

class Money {
    BigDecimal amount

    def asDollar() {
        amount
    }

    def asEuro() {
        amount / 1.3
    }
}

将两个类 (AccountMoney) 放入域文件夹中的一个 groovy 文件中,以避免为金钱创建额外的表。

另一种方法是使用自定义休眠类型

于 2013-10-26T11:25:21.727 回答