VARCHAR
我的数据库中有一个字段,该字段的值为val1,val2,val3
。
是否可以ArrayList<String>
使用逗号作为分隔定界符将其设置为实体的属性?
如果您使用JPA 2.1,则可以创建一个AttributeConverter
:
@Converter
public class StringListConverter implements AttributeConverter<List<String>, String> {
@Override
public String convertToDatabaseColumn(List<String> list) {
// Java 8
return String.join(",", list);
// Guava
return Joiner.on(',').join(list);
}
@Override
public List<String> convertToEntityAttribute(String joined) {
return new ArrayList<>(Arrays.asList(joined.split(",")));
}
}
您可以在实体中使用此转换器:
@Column
@Convert(converter = StringListConverter.class)
private List<String> strings;
对于JPA 2.1之前的版本,您可以手动执行以下操作:
@Entity
private MyEntity {
...
private String strings;
public List<String> getStrings() {
return Arrays.asList(strings.split(","));
}
public void setStrings(List<String> list) {
strings = String.join(",", list);
}
}
我将其包装Arrays.asList
在ArrayList
转换器中,因为结果存储在属性中,对该列表所做的任何更改都将写回到数据库中-
因此,我需要一个可更改的列表(我无法在的结果中添加任何内容Arrays.asList
)。在 2.1之前的
解决方案中,结果未与属性关联,并且可变列表不会与属性同步。
要查询包含此类属性中特定项目的实体,请在此处查看我的答案
问题内容: 我有一个清单说: 如何在不触及字符串的情况下转换预期的数字? 感谢您的帮助。 问题答案:
本文向大家介绍在Java中将字符列表转换为字符串,包括了在Java中将字符列表转换为字符串的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符列表- 将字符列表转换为字符串- 示例 以下是在Java中将字符列表转换为字符串的程序- 输出结果
我有一个字符串: 我需要将其转换为日期时间或字符串列表.... 我尝试 JsonDecode 它会引发格式异常: 未处理的异常:格式异常:意外的字符(在字符 6 处) [2022-04-14 15:51:10,2022-01-29 15:51:10] 如何从字符串中获取列表?
假设我有以下数组列表: 并且必须遵守规则: 从数组列表 1 开始,我想形成新的以下数组列表: <李>猫狗 <李>鼠蛇 无论如何都可以这样做。我目前还没有找到任何字符串到字符串转换的内容。
我试图将JSON解析到我的对象。json的一个字段包含[1,2,3,4],这是一个int s的列表。但是我的objects字段包含
我对任何编程都非常陌生,所以请原谅我的无知,因为我不知道如何做一些看起来很简单的事情。 我所要做的就是获取任何字符串数组(称之为名称),比如: 并将其从列表中删除,并将其转换为字符串: 我似乎无法理解这一点,也找不到类似的帖子。