Ho una grande entità che ho creato in Play! framework in Java e vorrei recuperare solo un campo specifico dal database usando Morphia e MongoDB. L'entità stessa è molto grande e contiene molti campi, quindi vorrei migliorare le prestazioni della mia applicazione recuperando solo un campo da essa.Come recuperare un campo specifico da un'entità utilizzando Morphia e Play framework in Java
So che è possibile, ma non riesco a capire esattamente come farlo ...
Ecco alcuni dei campi che ho nella mia classe Shop
:
public String imagePath;
public String profileImagePath;
public String Motto;
@Reference
public Category primeCategory;
public boolean isOnline;
Come si può vedere , il campo primeCategory
è un'entità Category
che desidero recuperare. ho visto qualcosa che supponiamo per ottenere che nel sito web di Morphia:
Datastore ds = null;
Shop shop = ds.createQuery(Shop.class).retrievedFields(true, "primeCategory").get();
Non sono sicuro di cosa esattamente faccio sto ottenendo qui.
Sarebbe bello se qualcuno potesse spiegarmi se questo è il modo e come esattamente dovrei farlo, oltre a fornire un esempio.
Vorrei assolutamente verificare: Jongo come alternativa ODM. http://jongo.org/ e https://github.com/alexanderjarvis/play-jongo proprio perché non c'è sviluppo molto attivo sul morfina atm. – Marc
Quello che stai facendo sembra corretto. L'oggetto 'shop' restituito dalla query è nullo? In caso contrario, 'shop.primeCategory' è nulla? Tieni presente che stai creando una query che troverà tutti gli oggetti Shop ma stai chiamando 'get()' in modo che tu possa recuperare solo il primo oggetto Shop. – InPursuit
shop and shop.primeCategory non sono nulli. Voglio solo sapere se questo è il modo di farlo o potrebbe essere mi manca qualcosa ... – elad