When writing an instance of my data class to the database via ORMLite, and one of the child members (a foreign field) is null, I get back a non null child member.
Data classes as follows:
public class Site {
// snip
@DatabaseField(foreign = true, canBeNull = true)
private InstallationType installationType;
}
public class InstallationType {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField
private String name;
}
When I read my instance of the Site class again via
getSiteDao().queryForId(id);
the installationType member is non null, but with a non-existent id. The only way the rest of our application can now work with this object, is if I manually do a lookup through the InstallationTypeDAO and set what I get back on the site. Query will sometimes return null as per the documentation.
Is there a way of getting ORMLite to set this member to null?
This was a bug in ORMLite that was fixed in version 4.15 (3/7/2011). Here’s the change log file. What version are you using? Have you tried to update? Here’s the bug report page:
Currently the following test passes so I think we have good coverage on that bug.
With
Foreignhaving the following fields:If you are up to date in versions, please let me know if you can change the test to get it to fail.