Spring не удалось лениво инициализировать коллекцию - остальные API - PullRequest
0 голосов
/ 04 июля 2018

Я получаю сообщение об ошибке, когда пытаюсь получить ответ от моего остальных API. Ошибка говорит ..

"message": "Could not write JSON: failed to lazily initialize a collection of role: pl.bmstefanski.some_package.entity.impl.GuildEntityImpl.regions, could not initialize proxy - no Session; nested exception is com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role: pl.bmstefanski.some_package.entity.impl.GuildEntityImpl.regions, could not initialize proxy - no Session (through reference chain: java.util.Collections$UnmodifiableRandomAccessList[0]->pl.bmstefanski.some_package.entity.impl.GuildEntityImpl[\"regions\"])"

Указанная коллекция:

  @ElementCollection(targetClass = String.class)
  @Column(columnDefinition = "TEXT", nullable = false)
  private List<String> regions;

У вас есть идея, почему Джексон не может отобразить эту коллекцию в формате json?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

решаемая. Мне просто нужно добавить собственный список конвертеров -> строка, вот так: @ Конвертер

public class StringListConverter implements AttributeConverter<List<String>, String> {

  @Override
  public String convertToDatabaseColumn(List<String> list) {
    return String.join(",", list);  
  }

  @Override
  public List<String> convertToEntityAttribute(String joined) {
    return new ArrayList<>(Arrays.asList(joined.split(",")));
  }

}

и затем аннотируйте мое поле,

  @Convert(converter = StringListConverter.class)
  @Column(columnDefinition = "TEXT", nullable = false)
  private List<String> regions;

source: Преобразовать список в сущности в однострочный столбец в базе данных

0 голосов
/ 04 июля 2018

Попробуйте: это может решить эту проблему, если нет, перейдите по ссылке ниже, которая имеет больше решений

@ ElementCollection (targetClass = String.class)

@ Column (columnDefinition = "TEXT", nullable = false)

@ JsonIgnore

Список частных регионов;

Как сохранить свойство типа List в JPA?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...