java - JPA:将值列表保存为逗号分隔值

标签 java hibernate jpa

我收到了 JSON 请求的简单值列表,我想将其保存为逗号分隔值。尝试使用以下但没有成功。

@Column(nullable = true)
@GeneratedValue(strategy = GenerationType.AUTO)
private ArrayList<String> services = new ArrayList<String>() ;

@Column(nullable = true)
@ElementCollection(targetClass = String.class)
private List<String> services = new ArrayList<String>() ;

@ElementCollection 引发异常,提示表服务不存在

最佳答案

@ElementCollection 需要一个表来存储多行值,

因此,您可以定义为字符串列,并在 getter 和 setter 中加入/分解,如下所示

private String services;

public setServices(String services[]) //Can be Array or List
{
     // this.services = Iterate services[] and create a comma separated string or Use ArrayUtils
}

public String[] getServices() //Can be Array or List
{
    // services.split(",") to get a list of Strings, then typecast/parse them to Strings before returning or use Arrays.asList(arguments.split(","));
}

关于java - JPA:将值列表保存为逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33571857/

相关文章:

hibernate - 如何覆盖 @SequenceGenerator(name = "idGenerator", sequenceName = "HIBERNATE_SEQUENCE", allocationSize = 50)

java - 如何为多个数据库表创建表单?

java - JPA的AttributeConverter和Hibernate的ColumnTransformer在属性加解密方面的区别

java - 从android按钮获取文本返回 ""

java - 实现接口(interface)时扩展包含的类型

java - 遍历迭代器中的元素,然后调用方法?

java - Hibernate:级联问题

java - Hibernate/JPA 双向级联 saveOrUpdate

java - jasypt解密密码存储在哪里

java - 持久化多个实体及其关系(Cascade.All/ManyToMany)