有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jackson不会序列化hibernate惰性抓取字段

在调试期间,我可以看到我的case字段中的required被提取。 enter image description here

但在收到回复后,我得到了这个。 enter image description here

这就是如何玷污我的领域和获得它

@JsonBackReference
@OneToMany(mappedBy = PhysicianNote.PHYSICIAN, fetch = FetchType.LAZY)
@ApiModelProperty(hidden = true)
private Set<PhysicianNote> notes;

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonProperty("notes")
public List<PhysicianNote> getNotes() {
    return Hibernate.isInitialized(notes)
            ? new ArrayList<>(notes)
            : new ArrayList<>();
}

这就是我对hibernate 5模块的定义

    @Bean
    @Primary
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        JavaTimeModule module = new JavaTimeModule();
        module.addSerializer(Instant.class, new InstantSerializerWithMilliSecondPrecision());
        Hibernate5Module h5Module = new Hibernate5Module();
        h5Module.configure(Hibernate5Module.Feature.FORCE_LAZY_LOADING, false);
        objectMapper.registerModules(module, h5Module);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        return objectMapper;
    }

我做错了什么


共 (1) 个答案

  1. # 1 楼答案

    您混淆了@JsonBackReference@JsonManagedReference,标有@JsonBackReference的字段将不会被序列化,它应该在PhysicianNote#physician上,而@JsonManagedReference应该在notes