【发布时间】:2019-04-09 16:05:54
【问题描述】:
我已经浏览了链接:https://jira.spring.io/browse/DATAMONGO-1107,而且我没有看到在 application.properties 文件中设置 spring.data.mongodb.persist-null-fields=true 的选项。
Spring Data Mongo 甚至不会持久化值为 null 的字段。如果我愿意,如何允许保存空值?
Person.java
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document
public class Person {
private String id;
private String firstName;
private String lastName;
private String emailId;
@Field
private List<Hobbies> hobbies;
}
爱好.java
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Hobbies {
private String interest;
private String sports;
}
save() - 此方法不保存数据。
private void savePersons() {
Hobbies hobbies1 = Hobbies.builder().interest("Indoor").sports("Chess").build();
Hobbies hobbies2 = Hobbies.builder().interest("Loveoor").sports("Table Tennis").build();
Hobbies hobbies3 = Hobbies.builder().interest("Gamedoor").sports("Cricket").build();
Hobbies hobbies4 = Hobbies.builder().interest("Happydoor").sports("Lawn Tennis").build();
Person john = Person.builder().firstName("John")
.emailId("john.kerr@gmail.com").hobbies(Arrays.asList(hobbies1, hobbies2)).build();
Person neha = Person.builder().firstName("Neha").lastName("Parate")
.emailId("john.kerr@gmail.com").hobbies(Arrays.asList(hobbies1, hobbies2, hobbies4)).build();
repository.saveAll(Arrays.asList(john, neha));
}
我没有看到文件中保存了 lastName。 另外,如何将 Date 保存为空值?
【问题讨论】:
-
@Triet Doan - 我已经检查过该解决方案。如果我们可以使用 Spring Data Mongo 而不是 BSONObject,有什么办法吗?
-
我不确定。您可以尝试用
@JsonInclude(JsonInclude.Include.ALWAYS)注释您的Person课程吗?注释来自 Jackson 库。 -
@Triet Doan - 仍然无法正常工作。我想知道为什么看不到将 null 保存到 MongoDB 中的规定?
-
您能否分享一下为什么需要在 MongoDB 中存储
null的原因?通常,我认为这样做没有意义。但也许我错了。
标签: spring mongodb spring-data-mongodb