【问题标题】:Spring MongoRepository : Convert to binary before inserting into MongoDBSpring MongoRepository:在插入 MongoDB 之前转换为二进制
【发布时间】:2014-08-28 22:39:50
【问题描述】:

这可能是一个简单的问题,但我不是 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;

在消息类中

但这对我来说既不合适,也不起作用,因为我发现即使具有相同的值,对于不同的 String 对象,我也会得到不同的 byte[]

我见过 MongoMappingConverter,但不确定它是否有效。有人可以发光吗?

非常感谢!

【问题讨论】:

    标签: spring-data spring-data-mongodb


    【解决方案1】:

    到目前为止,我发现无法自动执行此操作。但是,为了实现这一点,我只将 messageId 从 String 更改为 byte[]。

    这似乎奏效了。

    更正:Spring-Data 的 find() 方法不适用于 byte[],但 Mongo 的 java 驱动程序有效,因此我将调整 Spring-Data 方法。

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多