2015-05-08 10 views
5

Dottore include oggetto organizzazione sub oggetto:Realm.io - È possibile trovare l'oggetto tramite il suo subobject?

@PrimaryKey 
private int doctorId; 
private FullName fullName; 
private Age age; 
private Organization organization; 
private Position position; 
private String category; 
private String loyalty; 
private List<Specialization> specializations; 
private Contacts contacts; 

modello organizzazione ha i seguenti parametri:

@PrimaryKey 
    private OrganizationId organizationId; 
    private String organizationName; 
    private String key; 
// private Address address; 
    private String address; 
    private String phoneNumber; 

valori di riempimento come questo:

Organization organization = realm.createObject(Organization.class); // Create a new object 
OrganizationId organizationId = realm.createObject(OrganizationId.class); 
organizationId.setAggregateId("1"); 
organization.setOrganizationId(organizationId); 
organization.setOrganizationName("1-я Клиника Ташкентской Медицинской Академии"); 
organization.setAddress("Адрес: г. Ташкент, ул. Фароби, 2"); 
organization.setPhoneNumber("Тел.: (+99871) 214-51-01, 214-50-86, 214-50-43"); 
organization.setKey(organization.getOrganizationName().toLowerCase()); 

Doctor doctor = realm.createObject(Doctor.class); 
//FULL NAME 
FullName fullName = realm.createObject(FullName.class); 
fullName.setFirstName("Joe"); 
fullName.setLastName("Richard"); 
fullName.setMiddleName("Brown"); 
doctor.setFullName(fullName); 
//CONTACTS 
Contacts contacts = realm.createObject(Contacts.class); 
String[] phoneNumbers = {"+998903735173"}; 
contacts.setPhoneNumbers(phoneNumbers); 
doctor.setContacts(contacts); 
//ORGANIZATION 
doctor.setOrganization(organization); 

Ad esempio, questo codice restituisce tutti i medici con A category:

RealmQuery<Doctor> query = realm.where(Doctor.class); 
RealmResults<Doctor> rDoctors = query.contains("category", "A").findAll(); 
return rDoctors; 

La mia logica di app in questo modo: prima di tutto, apro l'elenco delle organizzazioni. Quando l'utente fa clic su un'organizzazione. Questo aprirà la lista dei medici.

Quindi la mia domanda è possibile trovare i medici per il suo oggetto secondario (Organizzazione)? Qualcosa di simile

RealmQuery<Doctor> query = realm.where(Doctor.class); 
    RealmResults<Doctor> rDoctors = query.someMagicalMethod("organization", organization1).findAll(); 
    return rDoctors; 

PS. Sì, posso ottenerlo andando in profondità nell'organizzazione. Mi chiedevo se Realm.io renda possibile la ricerca per oggetto. Ad ogni modo amo Realm.io

+0

Contrassegna la domanda come risolta se la risposta riportata di seguito ha risolto il problema. Grazie. – Ralphilius

risposta

15

Penso che sia possibile. Puoi verificarlo qui: http://realm.io/docs/java/latest/#link-queries

Secondo il vostro caso, si può provare il mio codice seguente:

RealmResults<Doctor> rDoctors = realm.where(Doctor.class) 
           .equalsTo("organization.organizationId", organizationId) 
           .findAll(); 
return rDoctors; 

Si prega di farmi sapere se funziona per voi.

+0

Cristiano dal Regno qui. Cosa dice @kodinagralph dovrebbe essere il modo giusto per farlo. –

+0

Grazie Chris. Puoi controllare la mia domanda quando hai tempo? http://stackoverflow.com/questions/30138203/realm-querying-long-type-class-returns-empty. Davvero apprezzato :) – Ralphilius

Problemi correlati