¿Hay una manera fácil de agregar un timestamp de última modificación mientras se utiliza ORMLite y Android?

Quiero añadir un campo que indique la última modificación o último acceso a mis objetos. ¿Hay un método fácil y auto refrescado para hacerlo?

No estoy seguro de cómo usar SQLite para admitir una marca de hora de última modificación. Sin embargo, una de las características de ORMLite es un campo de versión. Puede marcar un campo Date con version = true y cada vez que se actualiza actualizará la Date al último valor. Consulte la documentación para obtener más información:

http://ormlite.com/docs/version-field

Así que añade algo como lo siguiente a tu clase:

 @DatabaseField(version = true) Date modificationDate; 

He comprobado que esto funciona bien tanto para las fechas de creación como de modificación. Además, esto significa que al hacer cualquier actualización, agregará algo como lo siguiente al final de la instrucción de actualización automagically:

 UPDATE yourclass SET ... >>> WHERE modificationDate = existing-date; <<< 

Consulte la documentación para obtener más información. Ah, y si desea guardarlo como un largo, en su lugar podría hacer algo como:

 @DatabaseField(version = true, dataType = DataType.DATE_LONG) Date modificationDate; 

Puede crear un desencadenador que actualice su modificatoinDate cada vez que una inserción y una actualización ocurran en sqlite.

ejemplo:

 db.execSQL("create trigger updateModDate " + "after insert on MY_TABLE for each row begin " + "update MY_TABLE set modificationDate = date('now') where id = NEW.id " + "end;"); db.execSQL("create trigger updateModDate " + "after update on MY_TABLE for each row begin " + "update MY_TABLE set modificationDate = date('now') where id = NEW.id " + "end;"); 

Creo que los disparadores están disponibles en la base de datos sqlite utilizada por Android. No he verificado que estas actualizaciones funcionen, pero esto puede ser una solución transparente.

No estoy seguro sobre el último tiempo de acceso. Odiaría ver el rendimiento de tener que hacer una actualización cada vez que se realiza una selección.

  • ¿Cómo agregar una nueva columna a la base de datos SQLite de Android?
  • Tabla normal vs tabla virtual SQLite DB
  • Cursor finalizado sin advertencia previa de cierre (). ¿Qué significa eso?
  • SQLite static openDatabase error de método de base de datos en Android
  • ActiveAndroid Relación de muchos a muchos
  • Citas de Android dentro de una cadena de consulta SQL
  • SQLiteDatabase actualización no funciona?
  • ¿Cómo unir dos tablas SQLite en mi aplicación de Android?
  • Android - SimpleCursorAdapter.ViewBinder - Establecer el color de fondo
  • Manejo del almacenamiento de disco completo en Android
  • Prácticas recomendadas para unir tablas y notificar a ContentObservers en Android ContentProvider
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.