User类的creditBalances字段应该有哪些注释?
credit_balance表
CREATE TABLE `credit_balance` (
`user_id` varchar(255) NOT NULL,
`currency` char(3) DEFAULT NULL,
`amount` decimal(12,4) DEFAULT NULL
)
信用等级
@Embeddable
public class Credit {
@Column(name="currency", columnDefinition="CHAR(3)", nullable=false)
Currency currency;
@Column(name="amount", columnDefinition="DECIMAL(12,4)", nullable=false)
BigDecimal amount;
}
用户类
@Entity
public class User {
@Id
String id;
//What annotation goes here?
Map<Currency, Credit> creditBalances;
}
我们正在使用Hibernate 3.4。
澄清:currency
列应该用于地图密钥和Credit
对象的货币字段。
这可能在Hibernate中吗?
答案 0 :(得分:0)
这是我使用的一种变体。通常使用@ElementCollection
或@ManyToMany
注释,其他注释是情境性的。
@ElementCollection
@Column(name = "value", nullable=false)
@MapKeyColumn(name="name")
@JoinTable(name = "from_to", joinColumns = @JoinColumn(name = "to_id"))
Map<String, String>