我需要在安卓系统的Realm数据库中添加自动递增的key字段,我该怎么做?这可能吗?先谢了。
Realm
qgzx9mmu1#
Relam当前不支持自动增量在GitHub上看到此问题你可以像这样到处工作
Relam
realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { // increment index Number num = realm.where(dbObj.class).max("id"); int nextID; if(num == null) { nextID = 1; } else { nextID = num.intValue() + 1; } dbObj obj = realm.createObject(dbObj.class, nextID); // ... } }
hgb9j2n62#
Java绑定还不支持主键,但它已经在路线图上,并且具有很高的优先级-请参见:https://groups.google.com/forum/#!topic/realm-java/6 hFqdyoH 67 w。作为一种解决方法,您可以使用以下代码段生成密钥:
int key; try { key = realm.where(Child_pages.class).max("id").intValue() + 1; } catch(ArrayIndexOutOfBoundsException ex) { key = 0; // when there is no object in the database yet }
我使用singleton factory for generating primary keys作为更通用的解决方案,它具有更好的性能(不需要每次都查询max("id"))。如果你需要更多的上下文,在Realm Git Hub中有一个很长的讨论:文档如何设置自动增量ID?
max("id")
2条答案
按热度按时间qgzx9mmu1#
Relam
当前不支持自动增量在GitHub上看到此问题
你可以像这样到处工作
hgb9j2n62#
Java绑定还不支持主键,但它已经在路线图上,并且具有很高的优先级-请参见:https://groups.google.com/forum/#!topic/realm-java/6 hFqdyoH 67 w。作为一种解决方法,您可以使用以下代码段生成密钥:
我使用singleton factory for generating primary keys作为更通用的解决方案,它具有更好的性能(不需要每次都查询
max("id")
)。如果你需要更多的上下文,在Realm Git Hub中有一个很长的讨论:文档如何设置自动增量ID?