Ormlite正在以两种不同的方式从同一模型对象创建表
预期:
create table statement changed 0 rows: CREATE TABLE `clientspace`
(`id` INTEGER PRIMARY KEY AUTOINCREMENT , `user_is_following` INTEGER ,
`space_id` INTEGER , `client_id` INTEGER , `name` VARCHAR , `state` VARCHAR ,
`latitude` FLOAT , `longitude` FLOAT , `url_twitter` VARCHAR ,.....
错误:
executed create table statement changed 1 rows: CREATE TABLE `clientspace`
(`about_text` VARCHAR , `website` VARCHAR , `app_name` VARCHAR ,
`url_twitter` VARCHAR , `color` VARCHAR , `url_facebook` VARCHAR ,
`tagline` VARCHAR , `state` VARCHAR , `logo` VARCHAR , `skyline` VARCHAR ,
`name` VARCHAR .....
如果不知道id字段将是哪个列索引,我就无法通过queryId检索行!
为什么会发生这种情况,以及如何使列顺序保持一致。
在某些情况下,我删除表并重新创建它们,而不是删除,这不应该影响列顺序
TableUtils.createTable(getConnectionSource(), ClientSpace.class);
我也在使用安卓系统
我的结构
ormlite_config
文件的格式为所需表格的格式
编辑:找到了这个话题,还没有得出结论
https://groups.google.com/forum/#!topic/ormlite-android/N-tJ-2OVKL8
一个小费在哪里
"Don't ever rely on the defined order of fields in any database. This
is not just an Android tip, it's just good database practice in
general."
如果我不用的话,我肯定不会这么做
queryforId(
并给它一个行结果的精确索引。
例子:
final GenericRawResults<String[]> rawCustomFieldResults =
customFieldDao.queryRaw(customFieldQuery.prepareStatementString());
for(final String[] resultArray : rawCustomFieldResults) {
CustomFieldVO mCustomField =
customFieldDao.queryForId(Integer.valueOf(resultArray[2]));
哪里
queryForId(Integer.valueOf(resultArray[2])
要求我只有id,并且确切地知道id将在哪个索引中。