【问题标题】:How to map an integer array in JPA如何在 JPA 中映射整数数组
【发布时间】:2017-09-08 12:12:46
【问题描述】:

我将 spring jpa 与 hibernate 和 postgres 一起使用

在一个实体中,我尝试使用 List 和 integer[]

在数据库中,我有一列类型:

integer[] 

有没有jpa的使用方式?

【问题讨论】:

    标签: postgresql hibernate jpa spring-data-jpa


    【解决方案1】:

    JPA 无法开箱即用地将数组持久保存到单独的表或数据库数组(例如映射到 java.sql.Array 的数组)。所以你有两种方法:

    1) 使用@Lob 将此列保存为 BLOB 或 CLOB

    @Lob
    private Integer[] values;
    

    2) 使用List<Integer> 代替数组

    @ElementCollection
    public List<Integer> values;
    

    【讨论】:

      【解决方案2】:

      这样做对我来说很好:

      @Column(name="column_name")
      private Integer[] columnName;
      

      我不需要像 Mykola Yashchenko 建议的那样需要 @Lob

      【讨论】:

        【解决方案3】:

        您还可以编写自定义通用数组转换器来解决此问题。

        【讨论】:

        • 始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-20
        • 1970-01-01
        • 1970-01-01
        • 2020-07-13
        相关资源
        最近更新 更多