Spring引导始终在json中将延迟加载的字段显示为null

时间:2018-03-05 11:22:09

标签: java spring-boot

我正在开发一个Spring Boot应用程序,我懒得在我的类中加载一堆字段。但是,这些字段在请求中返回对象时为空,即使它们应该具有值。

我将hibernate感知对象映射器添加到我的应用程序

@Bean
public Jackson2ObjectMapperBuilder configureObjectMapper() {
  return new Jackson2ObjectMapperBuilder()
    .modulesToInstall(Hibernate4Module.class);
}

我可以在代码中访问延迟加载的字段,但只是将对象转换为json将无效。

MediaContent.java

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class MediaContent extends Content {

  @OneToOne(fetch = FetchType.LAZY)
  private StoredFile previewFile;

  @OneToOne(fetch = FetchType.LAZY)
  private StoredFile imageFile;

  @OneToMany(fetch = FetchType.LAZY, mappedBy = "downloadFor")
  private List<StoredFile> downloadFiles;

  @ManyToOne(fetch = FetchType.LAZY)
  private Genre genre;

  ...
}

ContentController.java
这将返回带有所有延迟加载字段null的对象,即使它们在数据库中有值也是如此。

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@Transactional
public @ResponseBody
Content find(@PathVariable Long id) {
  return em.find(Content.class, id);
}

基本上,我希望延迟加载的字段在将对象返回给请求时接收它们的值。

0 个答案:

没有答案