私はこれがあなたのエンティティで、それをこのようなものを使用する次に、この
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;
@Converter
public class IntArrayToStringConverter implements AttributeConverter<List<Integer>,String>{
@Override
public String convertToDatabaseColumn(List<Integer> attribute) {
return attribute == null ? null : StringUtils.join(attribute,",");
}
@Override
public List<Integer> convertToEntityAttribute(String dbData) {
if (StringUtils.isBlank(dbData))
return new ArrayList<>();
try (Stream<String> stream = Arrays.stream(dbData.split(","))) {
return stream.map(Integer::parseInt).collect(Collectors.toList());
}
}
}
を行うことができます古い質問ですが、JPAのコンテキストでこれをやろうと、誰のために知って
@Entity
public class SomeEntity
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
@Convert(converter = IntArrayToStringConverter.class)
private List<Integer> integers;
...
}
楽しい !!!
右。それは私が考えていたもう一つのことでした。カンマで区切った値などで記述しますが、ハックのように見えます。ネイティブのシリアライゼーションに関連して、これはリストをカラム型にマップすることができなかったので私が試して冬眠したことです。私は試し続けて、それから何が出てくるのか見てみましょう。あなたの答えに感謝します。 –