How to map an integer array in JPA

2020-04-08 13:08发布

I use spring jpa with hibernate and postgres

In an entity, I tried to use a List and integer[]

In the database, I have a column of type:

integer[] 

is there any jpa way to use it?

3条回答
一纸荒年 Trace。
2楼-- · 2020-04-08 13:54

JPA is not able to persist arrays to a separate table or database array (e.g. ones mapped to java.sql.Array) out of the box. So you have two ways:

1) Use @Lob to save this column as BLOB or CLOB

@Lob
private Integer[] values;

2) Use List<Integer> instead of an array

@ElementCollection
public List<Integer> values;
查看更多
何必那么认真
3楼-- · 2020-04-08 13:57

You can also write your custom generic array converter to resolve this issue.

查看更多
4楼-- · 2020-04-08 14:05

Just doing this worked fine for me:

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

I didn't need @Lob like Mykola Yashchenko suggested.

查看更多
登录 后发表回答