【发布时间】:2018-11-12 11:26:43
【问题描述】:
我正在从 REST 服务获取 JSON(170~ 费率)
{
"success":true,
"timestamp":1527944949,
"base":"EUR",
"date":"2018-06-02",
"rates":{
"AED":4.284515,
"AFN":83.084064,
"ALL":124.882747,
....
}
}
我想通过以下课程将它持久保存在我的数据库中
@Entity
@Table(name = "exchange_rate")
public class ExchangeRateEntity {
@Id
@Column(unique = true)
private Date date;
@ElementCollection
@MapKeyColumn(name="name")
@Column(name="value")
@CollectionTable(name="rates", joinColumns=@JoinColumn(name="date"))
private Map<String, Double> rates;
//getters and setters
}
如果我理解正确,它应该用我想要的数据制作新表“汇率”吗?但它最终以
MySQLSyntaxErrorException: 表 'currency_rate.rates' 不存在
currency_rate 是我的数据库名称
我试着改成
@CollectionTable(name="exchange_rate", joinColumns=@JoinColumn(name="date"))
但它给了我
MappingException: 外键 (FK9s46rfp5jp46vm7ep4cbc020x:exchange_rate [日期])) 必须相同 作为引用主键的列数(exchange_rate [日期,名称])
我很困惑,如何将地图存储在数据库中?
【问题讨论】:
-
嗯,错误很明显:您只是没有创建存储费率所需的数据库表(费率)。去做吧。
-
可以序列化成json。
标签: java mysql spring spring-data