这可能是一个简单的问题,但我不是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,但不确定它是否有效。有人会抛光吗?
非常感谢!
答案 0 :(得分:0)
我发现现在没办法自动执行此操作。但是,要实现这一点,我只将messageId从String更改为byte []。
这似乎有效。
并且更正:Spring-Data的find()
方法不能与byte[]
一起工作,但Mongo的java驱动程序可以工作,所以我要调整Spring - 数据方法。