2013-08-22 33 views
0

我有一個具有數據類型joda.money屬性的類。 如何將此屬性映射到mysql。如何在mysql中存儲joda.money

我的課是:

@Table(name = 「產品」)公共類產品(){@Column(name = 「名稱」) 字符串名稱; @Column(name =「money」)金錢; }

我使用的春天休眠

誰能告訴如何將這些模型存儲到MySQL?

回答

3

您在這裏有更多的選擇。

  1. 你可以讓兩個字段代表喬達的Money。貨幣爲BigDecimal,貨幣爲String。然後創建瞬態合成字段Money並在getter中創建它(請參見下面的示例)。
  2. 您可以實現自己的UserType,並提供自己的序列化/反序列化。參見javadoc UserType和文檔Custom types using org.hibernate.usertype.UserType。看看CompositeUserType的執行this
  3. 可以包括Jadira Usertypes項目,提供了對Hibernate喬達Money支持(我從來沒有反正tryied)

    @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; 
         } 
    } 
    
+0

感謝米哈爾。它的工作適合我:-) – user1183194

+0

工程很好,即時通訊使用彈簧啓動+彈簧數據 –