Realm Auto Incremento campo ejemplo

Necesito agregar el campo de la llave del incremento auto en la base de datos del Realm en androide. ¿Cómo puedo hacer esto? es posible?

Gracias por adelantado.

Relam actualmente no admite auto_increment

Vea este problema en GitHub

Usted puede tomar el trabajo alrededor como esto

 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); // ... } } 

El enlace Java no admite las claves primarias todavía, pero está en el mapa de ruta y con alta prioridad. Consulte: https://groups.google.com/forum/#!topic/realm-java/6hFqdyoH67w . Como solución, puede utilizar este código para generar claves:

 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 } 

Utilizo la fábrica del singleton para generar las llaves primarias como una solución más genérica con un mejor funcionamiento (ninguna necesidad de preguntar para el max("id") cada vez).

Hay una larga discusión en Realm Git Hub si necesitas más contexto: Documente cómo configurar un auto incremento id?

  • Convertir RealmResults <E> a Lista <E> con copyFromRealm
  • Realm Encontrar consultas Resultado en objetos vacíos
  • Cerrar instancia de Realm después de la ejecución
  • Realm java sort con varios campos
  • Cómo borrar la base de datos en el reino en Android
  • Realm: Cómo consultar con campo muchos a muchos
  • Declaración de actualización en Realm
  • ¿Los modelos Realm realmente requieren getters y setters?
  • Android: Realm.getInstance (context) devuelve una instancia de dominio ya cerrada
  • Cambiar el nombre de la tabla Realm
  • El objeto no es parte del esquema para este reino
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.