我正在从rest服务获得以下json(170~速率)
{
"success":true,
"timestamp":1527944949,
"base":"EUR",
"date":"2018-06-02",
"rates":{
"AED":4.284515,
"AFN":83.084064,
"ALL":124.882747,
....
}
}
我想把它放在我的db上,和下面的课一起
@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
}
如果我理解正确的话,它应该用我想要的数据创建一个新的表“rates”?但结果是
mysqlsyntaxerrorexception:表“currency\u rate.rates”不存在
其中货币汇率是我的db名称
我试着换成
@CollectionTable(name="exchange_rate", joinColumns=@JoinColumn(name="date"))
但它给了我
mappingexception:外键(fk9s46rfp5jp46vm7ep4cbc020x:汇率[日期])必须与引用的主键(汇率[日期,名称])具有相同的列数
我很困惑,怎么把Map存储在数据库里?
1条答案
按热度按时间ddrv8njm1#
您可以尝试使用jackson框架将json数据转换为pojo。
例子:
当“货币汇率”表实际存在时,数据库中的记录将只创建thwn。你可以写信
spring.jpa.generate-ddl=false
在应用程序配置文件中,表将自动创建。错误
MappingException: Foreign key (FK9s4...
这是由于实体关系不正确造成的。但你只写了一个实体。