मैं एक ऑब्जेक्ट बनाने और एक ही ऑपरेशन में उस ऑब्जेक्ट द्वारा आयोजित एक विदेशी संग्रह के सदस्यों को पॉप्युलेट करने की कोशिश कर रहा हूं। मैंने ऑपरेशन के हर आदेश की कोशिश की है जिसे मैं सोच सकता हूं, और इसे काम करने के लिए प्रतीत नहीं होता है।ORMLite - ऑब्जेक्ट कैसे बनाएं और विदेशी संग्रह कैसे बनाएं?
मेरे वर्गों (अप्रासंगिक क्षेत्रों और एनोटेशन लंघन) कर रहे हैं:
@DatabaseTable
public class ScheduledJob
{
@DatabaseField(id=true)
private String id = UUID.randomUUID().toString();
@ForeignCollectionField(eager=true)
private Collection<ScheduledJobTask> tasks;
/* other stuff here ... */
}
@DatabaseTable
public class ScheduledJobTask
{
@DatabaseField(id=true)
private String id = UUID.randomUUID().toString();
@DatabaseField(foreign=true)
private ScheduledJob job;
/* more other stuff ... */
public ScheduledJobTask(Task t) {
/* initialise scheduled task from template task by copying relevant fields...*/
}
}
मैं अपने वस्तुओं इस प्रकार बनाने के लिए:
ScheduledJob job = new ScheduledJob();
// fill in other fields of job here
job.tasks = new ArrayList<ScheduledJobTask>();
for (Task t : template.getTasks())
job.tasks.add(new ScheduledJobTask(t));
sched.getSchedule().add (job); // 'sched' is an object loaded from another table, this
// adds 'job' to a foreign collection in that table
Storage.store.scheduledJobs.createIfNotExists (job);
for (ScheduledJobTask t : job.getTasks())
Storage.store.scheduledJobTasks.createIfNotExists (t);
Storage.store.daySchedules.update (sched);
मैं पिछले तीन बयानों के सभी orderings की कोशिश की है, लेकिन कुछ भी करने लगता है कार्य: प्रत्येक मामले में, शेड्यूल किए गए जॉबटास्क डेटाबेस तालिका में समाप्त होने वाली प्रविष्टियां उनके 'job_id' फ़ील्ड के लिए शून्य होती हैं।
कोई विचार जो मैंने गलत किया है?
आह, धन्यवाद, मैं मान रहा था कि ऑब्जेक्ट जारी होने पर उन फ़ील्ड स्वचालित रूप से सेट हो जाएंगे। :) – Jules
यदि आप ORMLite को ऐसा करने में सक्षम होने का एक आसान तरीका समझ सकते हैं, तो मैं सभी कान @ जुल्स हूं। – Gray