Mam duży podmiot, który stworzyłem w Play! framework w Javie i chciałbym pobrać tylko określone pole z bazy danych za pomocą Morphia i MongoDB. Sam obiekt jest bardzo duży i zawiera wiele pól, dlatego chciałbym poprawić wydajność mojej aplikacji, pobierając z niej tylko jedno pole.Jak odzyskać konkretne pole z podmiotu używającego Morphia and Play framework w Javie
wiem, że to jest możliwe, ale nie mogę dowiedzieć się dokładnie, jak to zrobić ...
Oto niektóre z dziedzin mam w klasie Shop
:
public String imagePath;
public String profileImagePath;
public String Motto;
@Reference
public Category primeCategory;
public boolean isOnline;
Jak widać , pole primeCategory
jest encją Category
, którą chcę odzyskać. ujrzałem coś, co rzekomo osiągnąć w witrynie morfinę za:
Datastore ds = null;
Shop shop = ds.createQuery(Shop.class).retrievedFields(true, "primeCategory").get();
Nie jestem pewien, co dokładnie zrobić Dostaję tutaj.
Byłoby wspaniale, gdyby ktoś mógł mi wytłumaczyć, czy to jest sposób i jak dokładnie powinienem to zrobić, a także podać przykład.
Zdecydowanie sprawdzę: Jongo jako alternatywa ODM. http://jongo.org/ i https://github.com/alexanderjarvis/play-jongo tylko dlatego, że nie ma wiele aktywny rozwój na morfinę atm. – Marc
Co robisz, wygląda poprawnie. Czy obiekt 'sklep' został zwrócony przez zapytanie zerowe? Jeśli nie, to 'shop.primeCategory' null? Pamiętaj, że tworzysz zapytanie, które znajdzie wszystkie obiekty Shop, ale nazywasz 'get()', aby odzyskać tylko pierwszy obiekt Shop. – InPursuit
shop i shop.primeCategory nie są puste. Chcę tylko wiedzieć, czy to jest sposób, aby to zrobić, czy może brakuje mi czegoś ... – elad