I have a class which has attribute of datatype joda.money. How can I map this attribute into mysql.
my class is:
@Table(name="products") public class Product(){ @Column(name="name") String name; @Column(name="money") Money money; }
I am using spring hibernate
Can anyone tell how to store this model into mysql?
You have more choices here.
Money
. BigDecimal
for amount and String
for currency. Then create transient synthetic field Money
and create it in getter (see example below). UserType
and provide serialization/deserialization by your own. See javadoc UserType and documenatation Custom types using org.hibernate.usertype.UserType. Take a look at this implementation of CompositeUserType
.You can include Jadira Usertypes project which provides Joda Money
support for Hibernate (I've never tryied anyway)
@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;
}
}