Let\'s say I have the following situation:
Object Car has an ArrayList of prices, which are all numbers. Is it possible in Hibernate to save all the prices in a sin
I know this is an old question but for anyone trying to do this in a JPA context you can do this
import org.apache.commons.lang3.StringUtils;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Collections;
@Converter
public class IntArrayToStringConverter implements AttributeConverter,String>{
@Override
public String convertToDatabaseColumn(List attribute) {
return attribute == null ? null : StringUtils.join(attribute,",");
}
@Override
public List convertToEntityAttribute(String dbData) {
if (StringUtils.isBlank(dbData))
return Collections.emptyList();
try (Stream stream = Arrays.stream(dbData.split(","))) {
return stream.map(Integer::parseInt).collect(Collectors.toList());
}
}
}
Then to use it something like this in your entity
@Entity
public class SomeEntity
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
@Convert(converter = IntArrayToStringConverter.class)
private List integers;
...
}