我有一个具有数据类型joda.money属性的类。 如何将此属性映射到mysql。
我的课程是:
@Table(name =“products”)public class Product(){@ Column(name =“name”) 字符串名称; @Column(名字=“钱”)钱钱; }
我正在使用spring hibernate
有谁能说出如何将这个模型存储到mysql中?
答案 0 :(得分:5)
你在这里有更多选择。
Money
的字段。金额为BigDecimal
,货币为String
。然后创建瞬态合成域Money
并在getter中创建它(参见下面的示例)。 UserType
并自行提供序列化/反序列化。请参阅javadoc UserType和documenatation Custom types using org.hibernate.usertype.UserType。请查看CompositeUserType
的{{3}}实施情况。您可以添加this Usertypes项目,该项目为Hibernate提供Joda Money
支持(我从未尝试过)
@Entity @Table(name = "products")
public class Product {
@Basic @Column
private BigDecimal amount;
@Basic @Column
private String currency;
private transient Money money;
public Money getMoney() {
if (money == null) {
money = Money.of(CurrencyUnit.of(currency), amount);
}
return money;
}
}