ORMLite更改generatedId值

时间:2014-11-10 07:30:09

标签: android persistence ormlite

我在我的Android应用程序中使用ORMLite并且我搜索了很多但我没有明确的方法来做我想要的。我想知道是否可以更改generatedId值的起始值。例如,现在它从1开始,我想从010001或020001开始。我注意到我们内部有sqlite_sequence表。我必须改变这个价值,还是我必须以另一种方式改变?。

非常感谢!

3 个答案:

答案 0 :(得分:1)

最后我解决了。这是诀窍:

@DatabaseField(allowGeneratedIdInsert = true, generatedId = true, columnName = ID)
private int id;

我允许generateIdInsert,所以我可以手动设置我的Id,如果我不手动生成它,它将自动生成。之后我做了第一次明确插入。

daoObject.setId(010000);
dao.create(daoObject);

现在当我插入一个新对象时,generatedId将从010001开始。

我希望这个小技巧可以帮助别人。

答案 1 :(得分:1)

  

例如现在它从1开始,我想从010001或020001开始。

一般来说,我认为你应该做这样的事情。 id字段被设计为标识,您的应用程序不应该依赖于特定值。

如果您需要一些特定的数字,那么我会在数据库外部生成它并将其作为项目的另一个字段添加。因此,id可以浮动,无论数据库想要什么,您都可以拥有自己控制的特殊ID。

答案 2 :(得分:0)

您必须在CREATE TABLE中拥有AUTO_INCREMENT = 0100001;,但由于这是ORMLite生成的代码,您必须使用ORMLite注释强制它。

@DatabaseField(generatedId = true,
    columnDefinition = "INTEGER PRIMARY KEY AUTOINCREMENT = 0100001")
private int id;