2012-11-09 120 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