我使用下面的代碼刪除所有來自MongoDB的集合與給定parent_id
元素以去除MongoDB的元素:無法使用Hibernate OGM
final String strQuery = "db.Child.remove({'$query':{'PARENT_ID':'" + parentId + "'}})";
final Query query = entityManager.createNativeQuery(strQuery, Child.class);
query.executeUpdate();
不過,我收到以下異常:
Unexpected Exception
com.mongodb.util.JSONParseException:
db.Child.remove({'$query':{'CHILD_ID':'7313c076-dbaa-4557-b80f-68d040b65d82'}})
如果我用find
代替remove
,我會得到結果。不知道在aboev提到的本機查詢中導致JSON解析器錯誤的原因。
我使用的Hibernate OGM 4.3版本最終以蒙戈-DB 3.2
所以我得出的結論是:我不能使用'$ query'作爲它的棄用和不再支持,'.sort()'遊標方法不被hibernate OGM 5.0.1支持。任何其他的選擇,然後我排序在我的代碼? –
這是不幸的,但這是由於MongoDB不兼容的變化從3.0到3.2。由於這些變化,OGM 5.0並不能很好地支持MongoDB 3.2。我不久前在主分支中修復了這個問題:請參閱https://github.com/hibernate/hibernate-ogm/pull/749/commits/e3d008fa01f98f568d64a9899145aa68e13b0507。我們計劃儘快發佈OGM 5.1的第一個alpha版本,並且它應該使用起來相當安全。 –
有我想到JPA有一個em.remove方法... –