这可能是一个简单的问题,但我不是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 回答
我发现现在没办法自动做到这一点 . 但是,为了实现这一点,我只将messageId从String更改为byte [] .
这似乎有效 .
并更正:Spring-Data的
find()
方法不适用于byte[]
但是Mongo 's java driver works so I' m将调整Spring-Data方法 .