我可以将 JPA 2.1 @Converter 与数据库实体一起使用吗?

Can I utilise JPA 2.1 @Converter with DB entities?

也许,我有点不对,但是,我现在正在尝试通过使用 JPA 2.1 中的 @Converter 注释来重构我的代码,以外包从 POJO 转换的属性到 dbdata class 到一个单独的 class。我主要利用自定义转换将一种 JSON blob 存储到数据库列中。我有几种情况,我需要依赖子实体的顺序,即,我将使用的子实体集存储在多对多 table 中以保持项目之间的关系,此外, JSON 数组中仅保留子实体标识符的顺序(以保持顺序)。然后我有一个解决机制,使双方始终保持最新状态,即,db-data(字符串)将转换为(有序的)子实体列表(它们也存储在数据库中并可通过一组子实体(多对多关系)。

所以现在我想知道我是否可以使用 @Converter (AttributeConverter) 实现来处理这个问题,因为我需要一组子实体来将 db-data(字符串)解析为(有序的) ) 子实体列表(即 "convertToEntityAttribute" 方法实现)?或者我是否需要依靠我在 POJO class 中的(有点麻烦的)机制来在双方之间进行转换?

AttributeConverter 仅适用于简单类型,不适用于 collections/maps,因此提供 java 类型和数据库列之间的映射。一些 JPA 实现可能允许映射到多个列(我知道我使用的 JPA 实现,DataNucleus JPA 和其他一些可能也允许它),但我怀疑你会得到一个允许映射到其他一些 table完全。

最好查看您的实体映射并考虑以某种方式为此信息创建一个虚拟实体