首页 文章

Spring MongoRepository:在插入MongoDB之前转换为二进制文件

提问于
浏览
0

这可能是一个简单的问题,但我不是Spring的专家 . 我有一个类Message,表示mongoDB中名为“messages”的集合中的文档 .

@Document(collection = "archive")

public class Message{
    @Id
    private String messageId;

    private String from;
    private String to;
    // more stuff

}

界面 MessagesRepository 扩展 MongoRepository<Message,String>

public interface MessagesRepository extends MongoRepository<Message, String>{

}

我在我的代码中的不同模块中有 MongoRepository.findOne(ID) 方法调用,其中ID是一个字符串 .

一切正常 . 名为 messageId 的ID是 String . 但我想以 binary encoded 格式将其插入Mongo . 我的第一个粗略猜测是做

@Id
private byte[] messageId;

在Message类中

但它既不适合我,也不适用,因为我发现即使使用相同的值,我对不同的String对象也会有不同的 byte[] .

我见过MongoMappingConverter,但不确定它是否有效 . 有人会抛光吗?

万分感谢!

1 回答

  • 0

    我发现现在没办法自动做到这一点 . 但是,为了实现这一点,我只将messageId从String更改为byte [] .

    这似乎有效 .

    并更正:Spring-Data的 find() 方法不适用于 byte[] 但是Mongo 's java driver works so I' m将调整Spring-Data方法 .

相关问题