2016-04-22 6 views
2

У меня есть таблица SQLite, которая выглядит как:Сортировка таблицы базы данных по зашифрованному поле

CREATE TABLE MyTable 
(_id INTEGER PRIMARY KEY AUTOINCREMENT, 
    encrypted_field BLOB 
); 

на самом деле это BLOB только AES-256 шифруется JSon из Java класса, как:

public class MySecretClass { 
    private Date date; 
    private String message; 
} 

С , это под Android - у меня есть ContentProvider, который считывает данные, расшифровывает записи «на лету» и подает соответствующий ListView или RecyclerView

мне нужно как-то про Смотрите также сортировать по Date и String

Моего первое намерение состояло в том, чтобы ввести дополнительное поле в моей таблице таким образом, что она будет отражает записи изменения и какой-то образом «эмулировать» сортировка по Date и String, но в конце концов я застрял и обнаружил, что это неосуществимо ,

Любые другие идеи, обходные пути?

+0

Вы используете CursorAdapter? – Blackbelt

+0

Почему вы не используете зашифрованную базу данных, такую ​​как SQLCipher для Android? Затем вы можете написать обычный SQL-запрос для этого, считая, что ваша дата и сообщение были в обычных столбцах SQL. – CommonsWare

+0

1) Да, это своего рода «CursorAdapter». 2) Ну, я не могу использовать SQLCipher - это достаточно длинный рассказ и наверняка можно найти в этом разделе)) – barmaley

ответ

1

Сортировка в приложении, а не в базе данных.

Да, я согласен, что это лучшее решение.

В частности, я буду использовать MatrixCursor, который идеально подходит для моих личинок. Расшифровать содержимое и поместить объекты в MatrixCursor даст желаемый результат.

К счастью, сортируемый контент не огромен, всего несколько слов на запись с разумным количеством записей (< 1000).

Смежные вопросы