java - 为什么 Spring Boot Starter Mongodb Reactive 不保存我的实体的列表字段?

标签 java mongodb spring-boot spring-data reactive-programming

我不明白为什么使用 Spring Boot Mongodb Reactive 保存时实体的列表字段没有被持久化。

这就是我的联系人实体的样子:

@Data
@Document
public class Contact {
    private String id;

    @DBRef
    private User owner;

    private List<String> messageIds;

    private Message lastMessage;

    private LocalDateTime lastMessageAt;

    public boolean addMessageId(String message) {
        if (messageIds == null) {
            messageIds = new ArrayList<>();
        }
        return messageIds.add(message);
    }
}

我使用此存储库保存它:

public interface ContactRepository extends ReactiveMongoRepository<Contact, String> {

    Mono<Contact> findByOwnerId(String ownerId);

}

除了 messageIds 列表之外的所有内容都保存得很好。我已经从直接拥有消息列表切换过来,但这到目前为止没有帮助。

调试器还在存储库保存调用之前显示 messageIds 列表。

已经在寻找解决方案,但没有任何运气。我在这里错过了显而易见的事情吗?

最佳答案

事情就这么简单:

我忘记订阅将我的实体保存在 react 链中的内部可观察量。

关于java - 为什么 Spring Boot Starter Mongodb Reactive 不保存我的实体的列表字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56620518/

相关文章:

java - 连接升级至WebSocket

javascript - 如何将 JavaScript 中的 new Date() 格式化为 JSON 中的 ISODate

mongodb - MongoDB聚合框架的绝对值

spring-boot - Spring Boot @RestClientTest 如何使用真实服务器进行测试(不是模拟)

java - PlayFramework:渲染第一页示例

java - Java如何获取文件夹中的所有文件

JavaFX TableView 编辑而不是编辑

node.js - mongodb 中按日期分组?

java - 如何使用 Spring Boot 让多个线程从 RabbitMQ 队列中获取数据?

java - Spring 中的自定义 Http 状态码