Hibernate OGM - java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1

问题描述 投票:0回答:1

我无法使用内部ID在JPQL中检索此文档

{
    "_id" : {
        "activity_id" : NumberLong(1),
        "id" : NumberLong(629364456)
    },
    "date" : ISODate("2018-12-22T23:41:22.951Z"),
    "sys_date" : ISODate("2018-12-22T23:41:22.951Z"),
    "disable_revision" : 0,
    "type" : "myMongoEvent",
    "title" : "ref title",
    "revision" : "0.0",
    "freeze" : false,
    "user_id" : 0,
    "syncdate" : ISODate("2018-12-22T23:41:22.951Z"),
    "undelable" : 0,
    "username" : ""
}

查询:

Query query = entitymanager.createQuery("SELECT e.title FROM Event e WHERE e.id.id=:id");
query.setParameter("id",2046229248L);
List results = query.getResultList();

如果我查询像title这样的普通字符串字段,它就可以工作。

如果我使用复合索引的id查询(我需要复合索引),则不会。

我得到错误java.lang.StringIndexOutOfBoundsException: String index out of range: -1即使我查询不存在的title ..我应该只是得到null结果,为什么抛出异常?

mongodb java-ee jpql hibernate-ogm
1个回答
0
投票

这种情况下的问题是OGM中的一个错误。当@Column注释用于嵌入式id的属性时,会发生这种情况。在这种情况下,对该字段的查询将导致异常。

A fix has been provided,它将在下一个版本中提供。

© www.soinside.com 2019 - 2024. All rights reserved.