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

时间:2014-08-28 22:39:50

标签: spring-data spring-data-mongodb

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

@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;
中的

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

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

我发现现在没办法自动执行此操作。但是,要实现这一点,我只将messageId从String更改为byte []。

这似乎有效。

并且更正:Spring-Data的find()方法不能与byte[]一起工作,但Mongo的java驱动程序可以工作,所以我要调整Spring - 数据方法。