क्या नए एंड्रॉइड आर्किटेक्चर घटक और कक्ष पर्सिस्टेंस लाइब्रेरी के साथ एंटिटी क्लास में एम्बेडेड फ़ील्ड के रूप में एनम प्रकार का उपयोग करना संभव है?एंड्रॉइड आर्किटेक्चर घटक: एनम्स का उपयोग
मेरे (एम्बेडेड Enum के साथ) इकाई:
@Entity(tableName = "tasks")
public class Task extends SyncEntity {
@PrimaryKey(autoGenerate = true)
String taskId;
String title;
/** Status of the given task.
* Enumerated Values: 0 (Active), 1 (Inactive), 2 (Completed)
*/
@Embedded
Status status;
@TypeConverters(DateConverter.class)
Date startDate;
@TypeConverters(StatusConverter.class)
public enum Status {
ACTIVE(0),
INACTIVE(1),
COMPLETED(2);
private int code;
Status(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
}
मेरे TypeConverter:
public class StatusConverter {
@TypeConverter
public static Task.Status toStatus(int status) {
if (status == ACTIVE.getCode()) {
return ACTIVE;
} else if (status == INACTIVE.getCode()) {
return INACTIVE;
} else if (status == COMPLETED.getCode()) {
return COMPLETED;
} else {
throw new IllegalArgumentException("Could not recognize status");
}
}
@TypeConverter
public static Integer toInteger(Task.Status status) {
return status.getCode();
}
}
जब मैं इस संकलन मैं कह कोई त्रुटि मिलती है 'त्रुटि: (52, 12) त्रुटि: संस्थाओं और Pojos एक उपयोगी सार्वजनिक कन्स्ट्रक्टर होना चाहिए। आपके पास एक खाली कन्स्ट्रक्टर या एक कन्स्ट्रक्टर हो सकता है जिसका पैरामीटर फ़ील्ड (नाम और प्रकार के अनुसार) से मेल खाता है। '
अद्यतन 1 मेरे SyncEntity वर्ग:
/** * सभी कमरे संस्थाएं जो सिंक्रनाइज़ किए जाते हैं के लिए आधार वर्ग। */
@Entity
public class SyncEntity {
@ColumnInfo(name = "created_at")
Long createdAt;
@ColumnInfo(name = "updated_at")
Long updatedAt;
}
'SyncEntity' किसी भी कंस्ट्रक्टर्स को परिभाषित करता है? – CommonsWare
नहीं, ऐसा नहीं है। SyncEntity.class के साथ अद्यतन समस्या। – Bohsen
मुझे लगता है कि आपको या तो अपने फ़ील्ड को 'सार्वजनिक' बनाने की ज़रूरत है, 'सार्वजनिक' सेटर्स प्रदान करें, या 'सार्वजनिक' कन्स्ट्रक्टर प्रदान करें जो आपके '@ क्वेरी' कॉलम से मेल खाता हो। अन्यथा, कमरा आपको डेटा प्रदान नहीं कर सकता है।आपका एकमात्र कन्स्ट्रक्टर शून्य-तर्क वाला है। – CommonsWare