我已經代表一個蒙戈集合類名爲「存檔」Spring Data- MongoRepository:我們可以使用_id作爲二進制類型嗎?
@Document(collection = "archive")
public class Message{
@Id
private byte[] messageId;
private String from;
private String to;
// more stuff
}
接口MessagesRepository擴展MongoRepository:
public interface MessagesRepository extends MongoRepository<Message, String>{
}
通過API調用,我得到一個findMessage
要求,這給了我一個messageId
於String
。然後我需要將它編碼爲byte [],然後調用messagesRepository.findOne()
方法。 (請記住ID是byte[]
)。
它失敗。它返回null
。我猜想因爲存儲在Mongo中的byte []
將與findOne()
方法中的byte[]
不同,因爲即使值相同的不同字符串也會產生不同的byte[]
陣列。
我該如何做這項工作?或者真的可以在二進制文件中使用_id?
什麼是ID字段的邏輯數據類型? – chrylis 2014-08-29 22:14:43
@chrylis:OP表示它是byte []; @「Sasanka Panguluri」:你沒有爲_id使用二進制/字節來幫助自己;爲什麼不使用消息String或其hashCode呢? – Seismoid 2014-08-29 22:20:31
@Seismoid有一個原因,我問**的邏輯**類型。很明顯,立即聲明的類型是'byte []'。使用'hashCode'是荒謬的;數據庫ID必須是唯一的。 – chrylis 2014-08-29 22:22:23