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