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

时间:2015-01-19 09:47:26

标签: jpa

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

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

1 个答案:

答案 0 :(得分:1)

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

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