JsonMappingException: не удалось инициализировать прокси — нет сеанса [Spring 5.*]

Я видел сообщение об этом, но кажется, что я продолжаю сталкиваться с одной и той же проблемой.
Вот похожее сообщение:
JsonMappingException: не удалось инициализировать прокси - нет сеанса

Проблема

Поэтому предлагается добавить следующее:

private MappingJackson2HttpMessageConverter jacksonMessageConverter() {
    MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();

    ObjectMapper mapper = new ObjectMapper();
    //Registering Hibernate4Module to support lazy objects
    mapper.registerModule(new Hibernate5Module());

    messageConverter.setObjectMapper(mapper);
    return messageConverter;

}

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(jacksonMessageConverter());
    super.configureMessageConverters(converters);
}

Но у меня нет метода super.configureMessageConverters() внутри super. Говорят, что проще всего добавить EAGER, но это нежелательно. другим решением было бы использовать @JsonIgnore, но я хочу получить соответствующие объекты. Говорят, что добавление кода, который вы видите над этим текстом, является одним из правильных и чистых способов справиться с этим. Это все еще правда? Если да, то как мне написать super.configureMessageConverters(converters);, потому что это проблема.

Дополнительная информация

Эта проблема возникла, когда я добавлял отношения «многие ко многим»:

Тип

// region: relationships
@ManyToMany(mappedBy = "types")
private Set<License> licenses;
// endregion: relationships

Лицензия

@ManyToMany
@JoinTable(name = "license_restrictions",
        joinColumns = @JoinColumn(name = "license_id"),
        inverseJoinColumns = @JoinColumn(name = "type_id"))
private Set<Type> types;
// endregion: relationships

ОТРЕДАКТИРОВАНО V1

Я добавил следующее, как было предложено в комментариях:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(jackson2HttpMessageConverter());
}

@Bean
public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    converter.setObjectMapper(this.jacksonBuilder().build());

    return converter;
}

private Jackson2ObjectMapperBuilder jacksonBuilder() {
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();

    Hibernate5Module hibernateModule = new Hibernate5Module();

    hibernateModule.configure(Hibernate5Module.Feature.FORCE_LAZY_LOADING, false);

    builder.modules(hibernateModule);

    // Spring MVC default Objectmapper configuration
    builder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
    builder.featuresToDisable(MapperFeature.DEFAULT_VIEW_INCLUSION);

    return builder;
}

Это также не возвращает результат.

результат

Типов null, хотя это должен быть набор из 2 типов.

таблица отношений

Здесь вы можете видеть, что у меня есть типы, привязанные к лицензии 1.


person Oguzcan    schedule 06.03.2018    source источник
comment
взгляните на stackoverflow.com/questions/ 46190099/   -  person Ali Akbarpour    schedule 07.03.2018
comment
@Generic Я просмотрел вопросы / ответы, но, похоже, у меня это не сработало. Я добавил свои результаты в раздел EDITED V1.   -  person Oguzcan    schedule 07.03.2018
comment
Вы пробовали использовать @LazyCollection(LazyCollectionOption.FALSE) рядом с @ManyToMany?   -  person Ali Akbarpour    schedule 07.03.2018
comment
@Generic SyntaxError: JSON.parse: unexpected end of data at line 1 column 63970 of the JSON data Я пытался добавить это только сейчас, но он загрузил слишком много данных (бесконечный цикл).   -  person Oguzcan    schedule 07.03.2018