का उपयोग करके संबंध इकाइयों को सम्मिलित करें मैंने Relation का उपयोग करके कमरे में कई रिश्ते में एक जोड़ा है। मैंने कक्ष में संबंध के लिए निम्नलिखित कोड लिखने के लिए this post पर संदर्भित किया है।एंड्रॉइड रूम: कक्ष
पद बताता है कि कैसे डेटाबेस से मानों पढ़ लेकिन संस्थाओं के भंडारण में डेटाबेस userId
के परिणामस्वरूप रिक्त जिसका अर्थ है वहाँ 2 तालिकाओं के बीच कोई संबंध नहीं है।
मुझे यकीन है कि क्या डेटाबेस में insert
एक User
और List of Pet
करने के लिए आदर्श तरीका है, जबकि userId
मूल्य होने नहीं हूँ।
1) उपयोगकर्ता निकाय:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) पालतू पशु इकाई:
@Entity
public class Pet {
@PrimaryKey
public int id; // Pet id
public int userId; // User id
public String name;
}
3) UserWithPets POJO:
// Note: No annotation required at this class definition.
public class UserWithPets {
@Embedded
public User user;
@Relation(parentColumn = "id", entityColumn = "userId", entity = Pet.class)
public List<Pet> pets;
}
अब डीबी से रिकॉर्ड उपयोग हम लाने के लिए निम्नलिखित DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
संपादित
मैं इस मुद्दे पर नजर पर इस समस्या का https://issuetracker.google.com/issues/62848977 बनाया है। उम्मीद है कि वे इसके बारे में कुछ करेंगे।
मैंने 'स्ट्रीम' का उपयोग करके इसका प्रयास किया। मुझे उम्मीद है कि ऐसा करने का एक बेहतर तरीका है। –
मुझे नहीं लगता कि एक बेहतर तरीका है, क्योंकि प्रलेखन कहता है कि उन्होंने जानबूझकर पुस्तकालय से संदर्भ छोड़े हैं: https://developer.android.com/topic/libraries/architecture/room.html#no-object- संदर्भ – tknell
मैंने इस समस्या को समस्या ट्रैकर पर https://issuetracker.google.com/issues/62848977 बनाया है। उम्मीद है कि वे इसके बारे में कुछ करेंगे। –