2015-05-08 15 views
5

Doctor bao gồm Tổ chức đối tượng phụ đối tượng:Realm.io - Có thể tìm đối tượng bằng subobject của nó không?

@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; 

Tổ chức mô hình có thông số sau:

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

giá trị điền như thế này:

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); 

Ví dụ, mã này trả về tất cả các bác sĩ với Danh mục:

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

Logic ứng dụng của tôi như thế này: trước hết, tôi mở danh sách các tổ chức. Khi người dùng nhấp vào một tổ chức. Điều này sẽ mở danh sách các bác sĩ.

Vì vậy, câu hỏi của tôi là tôi có thể tìm bác sĩ theo đối tượng phụ của nó (Tổ chức) không? Một cái gì đó như thế này

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

PS. Vâng, tôi có thể lấy nó bằng cách đi sâu vào tổ chức. Tôi đã tự hỏi Realm.io làm cho tìm kiếm theo đối tượng có thể. Dù sao tôi yêu Realm.io

+0

Vui lòng đánh dấu câu hỏi của bạn là đã giải quyết nếu câu trả lời dưới đây giải quyết được vấn đề của bạn. Cảm ơn bạn. – Ralphilius

Trả lời

15

Tôi nghĩ rằng tôi có thể. Bạn có thể kiểm tra xem nó ra ở đây: http://realm.io/docs/java/latest/#link-queries

Theo trường hợp của bạn, bạn có thể thử đoạn mã sau của tôi:

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

Xin vui lòng cho tôi biết nếu nó làm việc cho bạn.

+0

Cơ đốc từ Realm ở đây. Điều gì @ kodinagralph nói nên là cách đúng đắn để làm điều đó. –

+0

Cảm ơn Chris. Bạn có thể kiểm tra câu hỏi của tôi khi bạn có thời gian không? http://stackoverflow.com/questions/30138203/realm-querying-long-type-class-returns-empty. Rất nhiều đánh giá cao :) – Ralphilius

Các vấn đề liên quan