Java 杰克逊没有';t序列化hibernate惰性抓取字段
在调试期间,我可以看到我的case字段中的required被提取。 但在收到回复后,我得到了这个。 这就是如何玷污我的领域和获得它Java 杰克逊没有';t序列化hibernate惰性抓取字段,java,spring,hibernate,jackson,Java,Spring,Hibernate,Jackson,在调试期间,我可以看到我的case字段中的required被提取。 但在收到回复后,我得到了这个。 这就是如何玷污我的领域和获得它 @JsonBackReference @OneToMany(mappedBy = PhysicianNote.PHYSICIAN, fetch = FetchType.LAZY) @ApiModelProperty(hidden = true) private Set<PhysicianNote> notes; @JsonInclude(JsonI
@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<>();
}
我做错了什么?你把
@JsonBackReference
和@JsonManagedReference
弄混了,一个标有@JsonBackReference
的字段将不会被序列化,它应该在physician note#physician
上,而@JsonManagedReference
应该在notes
上
@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;
}