一尘不染

JPA:将整数列表存储在单个字段中

spring-boot

是否可以使用标准JPA 2在相应实体表的单个字段中存储整数列表?

@Entity
@Table(name="tbl_myentities")
public class MyEntity {

@ElementaryCollection
@Column(name="vals") // in table tbl_myentities
private List<Integer> vals;

阅读 299

收藏
2020-05-30

共1个答案

一尘不染

不可能在一个字段中存储多个值。将它们存储在单个字段中的原因是什么?

一种方法可以是使用String类型的字段,然后在所有内容之间添加一个逗号分隔的列表,并在getter和setter中联接/分解:

private String vals;

public setVals(int vals[])
{
     // this.vals = Iterate vals[] and create a comma separated string
}

public int[] getVals()
{
    // vals.split(",") to get a list of Strings, then typecast/parse them to ints before returning
}

使用@ElementCollection注释并@CollectionTable控制映射需要一个单独的表来存储值。

@ElementCollection
private Collection<Integer> integers;

http://en.wikibooks.org/wiki/Java_Persistence/ElementCollection上了解有关元素集合的更多信息。

2020-05-30