2012-11-09 41 views
4

我有这样的对象:ORMLite ID生成

public class Set { 
    @DatabaseField(columnName = "setID", generatedId = true) 
    private int setID; 
    @DatabaseField(columnName = "setName") 
    private String setName; 
} 

如果我作出这样一个对象:

Set newSet = new Set("name"); 
setDao.create(newSet); 

然后,如果我有这样的:

int id = newSet.getID(); 

我会得到设置ID或应该从数据库中获取整个对象

setDao.queryForEq("setName", "name"); 
+2

你为什么不试试。 –

回答

10

所以ORMLite文档相当广泛。如果你看看generated-id in the docs你会看到下面的语句:现场

布尔是否是自动生成的ID字段。默认为false。在一个班级中只能有一个字段可以有这个设置。这会告诉数据库为插入的每一行自动生成相应的ID。 当使用Dao.create()方法创建带有generated-id的对象时,数据库将生成该行的id,该行将通过create方法返回并设置到对象中。

所以你叫setDao.create(newSet),后newSet对象的setID场将与数据库中的ID进行更改。

此外,调用字段setID是一个非常糟糕的模式。我建议只使用id

+0

非常感谢@格雷。这正是我一直在寻找的。 – nikmin