我从REST服务获得了以下JSON (170~ rates)
{
"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
}如果我理解正确,它应该用我想要的数据创建新的表"rates“?但最终结果是
MySQLSyntaxErrorException:表'currency_rate.rates‘不存在
其中currency_rate是我的数据库名称
我试着改成
@CollectionTable(name="exchange_rate", joinColumns=@JoinColumn(name="date"))但它给了我
MappingException:外键(FK9s46rfp5jp46vm7ep4cbc020x:exchange_rate date)必须与引用的主键(exchange_rate date,name)具有相同的列数
我完全迷惑了,如何在数据库中存储地图?
发布于 2018-06-03 07:49:03
示例:
String json = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }";
Car car = objectMapper.readValue(json, Car.class);数据库中的
spring.jpa.generate-ddl=false,然后由于实体关系不正确,表会创建automatically.MappingException: Foreign key (FK9s4...它。但是你只写了一个实体--https://stackoverflow.com/questions/50658352
复制相似问题