Hibernate OGM - java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1
Hibernate OGM - java.lang.StringIndexOutOfBoundsException: String index out of range: -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
..我应该只是得到空结果,为什么会抛出异常?
本例中的问题是 OGM 中的错误。当 @Column
注释用于 embdded id 的属性时会发生这种情况。在这种情况下,对该字段的查询将导致异常。
A fix has been provided 将在下一个版本中提供。
我无法使用内部 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
..我应该只是得到空结果,为什么会抛出异常?
本例中的问题是 OGM 中的错误。当 @Column
注释用于 embdded id 的属性时会发生这种情况。在这种情况下,对该字段的查询将导致异常。
A fix has been provided 将在下一个版本中提供。