2016-07-05 31 views
1

In letzter Zeit hatten wir aufgrund von Speichermangel einen Produktionsausfall. Wir erhielten einen Heap-Dump, der meinem Team die Antwort auf das gab, was schief gelaufen ist, aber dennoch haben wir ein nicht-deterministisches Verhalten bei der Ausführung der OQL-Abfrage erfahren.VisualVM/OQL Wie bekomme ich das Ergebnis von Long ID?

In VisualVM mit OQL habe ich versucht, alle Objekte mit der gleichen ID (die zufällig Long sein) zu bekommen und als Ergebnis bekomme ich auch Objekte mit anderen IDs.

select m from com.someapp.service.model.SomeModel m where m.id.value = 1; 

Diese Abfrage gibt immer mehr als 100 Ergebnisse mit scheinbar zufälligen ID-Werten zurück.

Warum ist das? Wie schreibe ich eine Abfrage, die die gesuchte Instanz zurückgibt?

Antwort

2

Es gibt einen Fehler in OQL. Das Problem ist Feldname 'ID'. Andere Feldnamen funktionieren einwandfrei.