Java Realm obtiene el último elemento insertado
¿En la solución de la base de datos del reino cómo puedo conseguir el último artículo insertado con el mejor funcionamiento?
Este código es mi solución para resolver que
- Realm.io - ¿Es posible encontrar objeto por su subobjeto?
- Insertar imagen en la base de datos del reino en android
- Error del compilador: com.sun.tools.javac.code.Symbol $ CompletionFailure: archivo de clase para rx.Observable no encontrado
- Realm con datos pre-poblados en activos?
- Tareas del grader del reino
List<Transactions> allItems = realm.where(Transactions.class).findAll().sort("createdAt", Sort.DESCENDING); String latestId = allItems.get(0).getId(); getUserLatestTransactions(Integer.parseInt(latestId));
¿Hay alguna otra solución o Realm tiene implementar eso?
- Se ha roto la restricción de clave primaria. El valor ya existe: 0
- Realm query equalTo resultados en nullpointerexception
- ¿Cómo instalar el reino como una dependencia gradle?
- ¿Cuál es la mejor manera de usar List <String> en Realm Android?
- Convertir RealmResults <E> a Lista <E> con copyFromRealm
- Declaración de actualización en Realm android
- Realm y Comportamiento de incremento automático (Android)
- Declaración de actualización en Realm
Esto es lo que usted podría hacer – teniendo en cuenta Realm lee no hacer copias, lo que significa que no es costoso y no afectará su hilo de interfaz de usuario mucho, después de almacenar su elemento, puede findAllSorted("createdAt)
o findAllSorted("id")
, Encuentra el último identificador usando last()
método last()
como este:
//after commitTransaction, RealmResults<Transactions> allTransactions = realm.where(Transactions.class).findAllSorted("createdAt"); //If you have an incrementing id column, do this long lastInsertedId = allTransactions.last().getId();
Esto debería darle la última ID insertada del modelo dado.
También es importante mencionar que para que esto funcione, usted DEBE tener una columna en su modelo como esto con id;
public class Transactions extends RealmObject{ @PrimaryKey @Index private long id; //getters and setters accordingly! }
¡Espero que esto ayude! Buena suerte y codificación feliz!
ACTUALIZAR
Acabo de realm.copyToRealm(obj)
cuenta de que realm.copyToRealm(obj)
devuelve un objeto!
Eso significa que usted puede simplemente hacer esto:
realm.beginTransaction(); Transactions transaction = realm.copyToRealm(newTransaction); long id = transaction.getId(); realm.commitTransaction();
Por favor, prueba esto y házmelo saber!
Si la identificación es única y incremental usted puede clasificar por ella o poner el tiempo como valor largo y hacer iguales que arriba debe trabajar.
- Disposición androide flexible para múltiples tamaños / densidades de pantalla
- React-native: La compilación falló con una excepción