2

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

我的课是:

@Table(name="products") public class Product(){ @Column(name="name") 字符串名称;@Column(name="money") 钱钱;}

我正在使用春季休眠

谁能告诉如何将此模型存储到mysql中?

4

1 回答 1

5

你在这里有更多的选择。

  1. 您可以创建两个代表 Joda 的字段MoneyBigDecimal金额和String货币。然后创建瞬态合成字段Money并在 getter 中创建它(参见下面的示例)。
  2. 您可以自己实现UserType并自己提供序列化/反序列化。请参阅 javadoc UserType使用 org.hibernate.usertype.UserType 的自定义类型。看看这个实现CompositeUserType
  3. 您可以包括为 Hibernate提供 Joda支持的JadiraMoney Usertypes 项目(我从来没有尝试过)

    @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;
            }
    }
    
于 2013-08-22T13:42:13.283 回答