有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在JPA中使用带有连接ID的字符串列值作为外键

我的数据库的一列是一个字符串,它具有非规范化的ID,如"3,7,8"。我无法更改数据库的遗留逻辑

我目前正在使用@Converter将字段转换为List<Integer>,但我想进行第二次传递,以便实体直接定义:

@Column
@OneToMany
List<ForeignEntity>

有没有什么本地方法可以告诉JPA进行第二次转换

我知道我可以在转换器中解析,但我正在寻找一种更简洁的方法,以避免在数据转换器中使用查询,并从标准JPA注释和机制中获益

事实上,我的外国实体只是一张地图,如果有人能给我指出一个更好的解决方案,那么我就可以更复杂地直接解决这个问题

id | key | value
----------------
3  | A   |  ...
3  | B   |  ...
3  | C   |  ...
7  | A   |  ...
7  | B   |  ...
7  | C   |  ...
...

进入

@Column
@OneToMany
List<Map<String,String>> resolvedValues; // Contains {Map[A,B,C]{... , ..., ...}, Map[A,B,C]{... , ..., ...}, ... }

我会很高兴的


共 (1) 个答案