是否存在将PostgreSQL hstore转换为JPA 2.1 DataType的优雅且通用的方法?

研究

我已经使用JPA 2.1Converter将PostgreSQL转换hstoreMap<String, String>但是我没有找到针对EclipseLink和Hibernate等不同JPA提供程序的通用方法。因此,我需要为每个JPA提供程序编写不同的Converter。

以下是为EclipseLink和Hibernate使用不同转换器的示例。https://github.com/phstudy/jpa-converter-sample

是否有针对不同JPA提供者的通用方法?

亚当·米恰里克(Adam Michalik)

PostgreSQL JDBC驱动程序提供了org.postgresql.util.HStoreConverter具有to / fromStringbyte[]转换功能实用程序类您可以使用它来实现自己的JPA 2.1 Converter

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.util.Map;
import org.postgresql.util.HStoreConverter;

@Converter
public class MyHStoreConverter implements AttributeConverter<Map<String, String>, String> {
    @Override
    public String convertToDatabaseColumn(Map<String, String> attribute) {
        return HStoreConverter.toString(attribute);
    }

    @Override
    public Map<String, String> convertToEntityAttribute(String dbData) {
        return HStoreConverter.fromString(dbData);
    }
}

然后,将其与Convert实体中的JPA注释一起使用

@Entity
public class MyEntity {
    @Convert(converter = MyHStoreConverter.class)
    private Map<String, String> hstoreAttribute;
}

这是仅使用JPA标准的实现,因此应与JPA提供者无关。但是,较早之前,Hibernate错误HHH-8804阻止了使用Converter映射到泛型,但是Hibernate 5.0.0和4.3.11中已解决了该问题。Map<>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

来自分类Dev

是否有将字符串“1, 2, 3, 4”或“1 2 3 4”转换为整数数组或 List<Integer> 的库方法?

来自分类Dev

将查询结果转换为hstore

来自分类Dev

优雅地将1M转换为1000000

来自分类Dev

有更好的方法将字典转换为[k1,v1,k2,va]吗?

来自分类Dev

将字符串“2.0”转换为通用分数并将“2”转换为通用Num的好方法是什么?

来自分类Dev

将Angular 1.x指令转换为Angular 2

来自分类Dev

无法将类型1的对象强制转换为类型2?

来自分类Dev

将2个功能转换为1个功能

来自分类Dev

将数组[“ 1”,“ 3”,“ 2”]转换为[132]

来自分类Dev

将2D cvMat转换为1D

来自分类Dev

将Angular 1.x指令转换为Angular 2

来自分类Dev

将Angular 1转换为Angular 2 ngInit函数

来自分类Dev

如何将每2行转换为1行?

来自分类Dev

将2点的距离转换为1/32英寸?

来自分类Dev

将 Struts 1 中的 Action 转换为等效的 Struts 2

来自分类Dev

将 Array{Int, 1} 转换为 Array{Int, 2}

来自分类Dev

将'1-1-1至1-10-1'转换为'1-1-1','1-2-1',...'1-10-1'的十个值

来自分类Dev

Python是否会自动将* 2替换为<< 1?

来自分类Dev

将1D字节数组转换为2D numpy数组的最快方法

来自分类Dev

在PostgreSQL 9.3+中将JSON转换为HSTORE?

来自分类Dev

将Expression <Func <T1 >>转换为Expression <Func <T1,T2 >>

来自分类Dev

将查询结果转换为hstore时保留列名

来自分类Dev

将 hstore 列转换为 XPO 类属性 Npgsql 3.2.7

来自分类Dev

使用Java&Hibernate&JPA将MySQL latin1转换为UTF-8

来自分类Dev

使用第2维的索引将2-D列表转换为1-D

来自分类Dev

如何在python 3.5中将1/2转换为2

来自分类Dev

将日期列表尺寸从Mx2转换为2Mx1

来自分类Dev

将 Angular[2] V3, Dart 1 的路由转换为 Angular 5, Dart 2

Related 相关文章

  1. 1

    使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

  2. 2

    是否有将字符串“1, 2, 3, 4”或“1 2 3 4”转换为整数数组或 List<Integer> 的库方法?

  3. 3

    将查询结果转换为hstore

  4. 4

    优雅地将1M转换为1000000

  5. 5

    有更好的方法将字典转换为[k1,v1,k2,va]吗?

  6. 6

    将字符串“2.0”转换为通用分数并将“2”转换为通用Num的好方法是什么?

  7. 7

    将Angular 1.x指令转换为Angular 2

  8. 8

    无法将类型1的对象强制转换为类型2?

  9. 9

    将2个功能转换为1个功能

  10. 10

    将数组[“ 1”,“ 3”,“ 2”]转换为[132]

  11. 11

    将2D cvMat转换为1D

  12. 12

    将Angular 1.x指令转换为Angular 2

  13. 13

    将Angular 1转换为Angular 2 ngInit函数

  14. 14

    如何将每2行转换为1行?

  15. 15

    将2点的距离转换为1/32英寸?

  16. 16

    将 Struts 1 中的 Action 转换为等效的 Struts 2

  17. 17

    将 Array{Int, 1} 转换为 Array{Int, 2}

  18. 18

    将'1-1-1至1-10-1'转换为'1-1-1','1-2-1',...'1-10-1'的十个值

  19. 19

    Python是否会自动将* 2替换为<< 1?

  20. 20

    将1D字节数组转换为2D numpy数组的最快方法

  21. 21

    在PostgreSQL 9.3+中将JSON转换为HSTORE?

  22. 22

    将Expression <Func <T1 >>转换为Expression <Func <T1,T2 >>

  23. 23

    将查询结果转换为hstore时保留列名

  24. 24

    将 hstore 列转换为 XPO 类属性 Npgsql 3.2.7

  25. 25

    使用Java&Hibernate&JPA将MySQL latin1转换为UTF-8

  26. 26

    使用第2维的索引将2-D列表转换为1-D

  27. 27

    如何在python 3.5中将1/2转换为2

  28. 28

    将日期列表尺寸从Mx2转换为2Mx1

  29. 29

    将 Angular[2] V3, Dart 1 的路由转换为 Angular 5, Dart 2

热门标签

归档