【发布时间】:2015-04-21 22:20:38
【问题描述】:
在我正在进行的一个项目中,使用 JPA 将 (Hash)Map 映射到数据库似乎存在问题。
地图(名为“racers”,在实体“Race”中)由键值对
地图由“@ElementCollection”注释。
尝试将地图持久化到数据库时,会出现错误:“Data truncation: Data too long for column 'RACERS'”。
在检查数据库时,我们看到创建了一个表“Race_RACERS”,它由三列组成:两个 bigint(代表 Race 对象和 User 对象的 id)和一个 varchar,其中包含 Racestats 对象。
当然,最后一列还应该包含对 Racestats 的引用,而不是嵌入这些 Racestats 对象。
我们已经尝试使用其他几个注释来解决此问题,但它们似乎都不起作用。
谁能提供正确的语法来持久化我们的对象。
显然,每个地图中的键都是唯一的,但在不同的 Race 对象中,地图可能包含相同的键。
没有两个值是相同的。即使在不同的 Race 对象中,地图也永远不会包含相同的值。
【问题讨论】:
标签: java mysql jakarta-ee jpa