Java JsonNode.isBigInteger()对任何数字返回false

Java JsonNode.isBigInteger()对任何数字返回false,java,biginteger,jackson-databind,Java,Biginteger,Jackson Databind,我已经创建了一个REST服务,它正在数据库中查找某些对象。 对象由ID或名称标识。ID是一个大整数(最多256位)。 我的控制器中有一段代码: for(JsonNode node : arrayNode) { if(node.isBigInteger()) { resultList.add(repository.getById(node.bigIntegerValue())); } else if(node.isTextual()) { resultL

我已经创建了一个REST服务,它正在数据库中查找某些对象。 对象由ID或名称标识。ID是一个大整数(最多256位)。 我的控制器中有一段代码:

for(JsonNode node : arrayNode) {
    if(node.isBigInteger()) {
       resultList.add(repository.getById(node.bigIntegerValue()));
    } else if(node.isTextual()) {
       resultList.add(repository.getByName(node.textValue()));
    } else {
        // skip it
    }
}
如果在请求中我只给出名称,它将按预期工作,但如果我指定数值,isBigInteger()将始终返回false。 不幸的是,Jackson中没有用于此函数的Javadoc。
有人用过这个函数吗?是有bug还是我做错了什么?

如果ID足够小,不需要大整数来匹配,那么Jackson几乎肯定不会以这种方式反序列化它们。它无法知道,在这么低的a级别,你一直想要大整数

这是我们将这样的数据反序列化到模型类中的原因之一,以提供关于这样的事情的提示