Hibernate 如何在mysql中存储joda.money

Hibernate 如何在mysql中存储joda.money,hibernate,joda-money,Hibernate,Joda Money,我有一个数据类型为joda.money的类。 如何将此属性映射到mysql 我的班级是: @表(name=“products”)公共类Product(){@Column(name=“name”) 字符串名称;@Column(name=“money”)money;} 我正在使用SpringHibernate 有人能告诉我如何将这个模型存储到mysql中吗?这里有更多的选择 您可以创建两个字段来表示Joda的钱大十进制表示金额,字符串表示货币。然后创建瞬态合成字段Money,并在getter中创建它

我有一个数据类型为joda.money的类。 如何将此属性映射到mysql

我的班级是:

@表(name=“products”)公共类Product(){@Column(name=“name”) 字符串名称;@Column(name=“money”)money;}

我正在使用SpringHibernate


有人能告诉我如何将这个模型存储到mysql中吗?

这里有更多的选择

  • 您可以创建两个字段来表示Joda的
    <代码>大十进制表示金额,字符串表示货币。然后创建瞬态合成字段
    Money
    ,并在getter中创建它(参见下面的示例)
  • 您可以实现自己的
    UserType
    ,并提供自己的序列化/反序列化。参见javadoc和documenation。看看
    CompositeUserType
    的实现
  • 您可以包括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;
            }
    }