我有一个MongoDB集合,其中的文档包含多个数组。我“米检索这些文件和它们的数据存储到的POJO无法将BasicDBList转换为数组(java)
在某些情况下,我可以这样做:
BasicDBList kws = (BasicDBList)obj.get(Constants.KEYWORDS_STR);
if(!kws.isEmpty())
tb.setKeywords(kws.toArray(new String[0]));
不过,我已经一个数组多数民众赞成绊倒我,我还以为它包含了多头,但是。 toArray(new Long [0])抛出java.lang.ArrayStoreException。我想好了,由于某些原因,它们被存储为字符串,并尝试转换为一个字符串数组,并且仍然得到java.lang.ArrayStoreException。
如何判断BasicDBList认为它存储在哪个类中?
根据我的数据模型,它应该是Longs。看起来,JSON序列化程序在将Longs插入到MongoDB之前将它们转换为整数,因此它们被读出为整数。 – betseyb
如果可以的话,驱动程序会尝试将其值填入32位,如果必要的话将其提升到64位。同样,它会反序列化,如果可以的话,试图将它装入53位。如果不能,它将返回一个Long的实例以避免失去精度。 – Keith