objectbox / objectbox/objectbox-java

ObjectBrowser: not possible to add filter based on relation-ID

Offen
#1,057 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
Java
Sterne
4.6k
Forks
311
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

🚨 First, please check:

  • existing issues,

As far as I searched the open and closed issues with keyword "browser", I couldn't find anything related.

Curiously, I couldn't find anything in the docs about the ObjectBrowsers' usage and setup (aside of the changelog), is it deprecated now?

This page gives me a 500-code page right now...

The FAQ doesn't mention usage of the objectbrowser

Describe the bug
If I try to filter the data in the objectbrowser for an Entity that is participating as a target in an ToMany-relation, the objectbrowser-filter feature does not let me choose any operators for the ID-property for the ToOne-backlink.

Basic info (please complete the following information):

  • ObjectBox version (are you using the latest version?): 3.1.2 on a fresh test-project
  • Reproducibility: always
  • Device: Galaxy S20 FE (does not seem related to execution of this specific bug in ObjectBrowser)
  • OS: Android 12

To Reproduce
Steps to reproduce the behavior:

  1. Extract the attached demo-project objectboxtest.zip
  2. Open the project in Android Studio
  3. Compile and start the app on an emulator or device
  4. Leave the app open
  5. On the terminal, execute command adb forward tcp:8090 tcp:8090
  6. On the desktop, open a browser and open objectbrowser at http://localhost:8090/#/data/Login/page-1
  7. Add a filter for the Login-table
  8. As the filtered property, select userId
  9. Try to select the operator, but only choice from the popup is No data available
  10. No dice!

Expected behavior
As the property userId is a Long, I would expect the operator-popup to give me at least the choice to select = to filter the table for specific rows, so that I can filter a longer list of data for specific items.

Code
If applicable, add code to help explain your problem.

  • Include affected entity classes.
  • Please remove any unnecessary or confidential parts.
  • At best, link to or attach a project with a failing test.

objectboxtest.zip

Logs, stack traces
If applicable, add relevant logs, or a stack trace.

  • For build issues, use --stacktrace for the Gradle build (./gradlew build --stacktrace).
  • For runtime errors, check Android's Logcat (also check logs before the issue!).

There are no build-issues or runtime-errors to be observed. Even the objectbrowser does not issue any warnings at any time.

Additional context
Add any other context about the problem here.

  • Is there anything special about your app?

The only special thing about this might be the use-case for the filtering-feature in the objectbrowser.
Otherwise, it is a very simple demo-setup according to the Get-Started-docs (aside from the objectbrowser-setup, which I had to derive from my real app-project, since I couldn't find any setup-docs for it anymore).

  • May transactions or multi-threading play a role?

Nothing of the like is used here.

  • Did you find any workarounds to prevent the issue?

I tried the workaround mentioned here to being able to filter data with the userId in the objectbrowser, but sadly it didn't make any difference.

It would be really nice to be able to filter specific dependent data from relations in the objectbrowser, as long as a dedicated relations-browser feature is missing.

Thank you for your support!

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Verwende die angehängte objectboxtest.zip, starte die App, führe adb forward tcp:8090 tcp:8090 aus und reproduziere den Filter unter der ObjectBrowser-URL. Untersuche das Filterverhalten von ObjectBrowser für die Relations-ID userId; abgeschlossen ist die Aufgabe, wenn das Operator-Popup = anbietet und die relevanten Zeilen filtert, wobei die zugehörige Einrichtung bei Bedarf dokumentiert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, java
Bereich
databases, mobile-dev
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.