【发布时间】:2012-02-13 12:44:58
【问题描述】:
我正在尝试使用 ormlite 查询方法将数据库行加载到 DO 对象中。我面临的问题是数据库中的空值映射到 DO 对象中的 Wrapper 类型字段。空字段作为 0 填充到 DO 中,这弄乱了我的业务逻辑。
有没有办法让 ormlite 将这些字段填充为 null 而不是 0。
我的示例 DO 结构:
@DatabaseTable(tableName="PERSON")
public class Person
{
@DatabaseField(columnName="NAME", dataType=DataType.STRING, useGetSet=true)
private String name;
@DatabaseField(columnName = "AGE", dataType = DataType.SHORT, useGetSet = true)
private Short age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Short getAge()
{
return age;
}
public void setAge(Short age)
{
this.age = age;
}
}
我用来加载对象的 DAO 代码是:
person = queryForEq("NAME", someName).get(0);
总而言之,在 Person 类中,如果人的年龄在 SQLite 数据库中存储为 null,则在查询对象时,ormlite 填充为 0。我想避免这种情况并确保将年龄设置为空。有什么办法可以实现吗?
【问题讨论】:
-
我很好奇你为什么使用
useGetSet而不是让它使用反射? -
我没有使用
useGetSet的具体原因。正在尝试。使用useGetSet会对我的应用程序的性能产生负面影响吗? -
不,只是它不是默认设置,我很好奇。反射是默认设置。