Size: a a a

Android Developers

2020 August 04

QH

Quantum Harmonizer in Android Developers
источник

D

Dodin in Android Developers
fsociety
Кто знает как в firebase изменить имена вот этих "ключей"?
Удалить и вставить с нужным ключом ту же запись
источник

AB

Anton Brisilin in Android Developers
Использую Room.
Eсть модель M с полями type, breed, color.
Хочу заимплементить поиск по этим трем параметрам, но не всегда все три должны быть задействованы.
Пример использования:
@Query("select * from M where type=:type and breed=:breed")
fun getModelByBreedAndType(breed:String, type:String) {...}
Таких функций становится очень много, для трех параметров - 2^3 = 8.
Соответственно, хочется сделать функцию getModelByParameters(type, breed, color), с нуллабельными параметрами, которые не участвовали бы в поиске, если передан null.  Подскажите, как реализовать подобное поведение?
(Или хотя бы запрос для гугла, потому что ничего не могу найти подобного)
источник

QH

Quantum Harmonizer in Android Developers
Anton Brisilin
Использую Room.
Eсть модель M с полями type, breed, color.
Хочу заимплементить поиск по этим трем параметрам, но не всегда все три должны быть задействованы.
Пример использования:
@Query("select * from M where type=:type and breed=:breed")
fun getModelByBreedAndType(breed:String, type:String) {...}
Таких функций становится очень много, для трех параметров - 2^3 = 8.
Соответственно, хочется сделать функцию getModelByParameters(type, breed, color), с нуллабельными параметрами, которые не участвовали бы в поиске, если передан null.  Подскажите, как реализовать подобное поведение?
(Или хотя бы запрос для гугла, потому что ничего не могу найти подобного)
я б генерил SQL на лету
источник

AB

Anton Brisilin in Android Developers
Quantum Harmonizer
я б генерил SQL на лету
Вот я тоже об этом подумал. Но у аннотаций же аргументы должны быть вычичлены на этапе компиляции.
Выход - использовать "голый" SQLite?
источник

S

Sergey S. in Android Developers
Anton Brisilin
Использую Room.
Eсть модель M с полями type, breed, color.
Хочу заимплементить поиск по этим трем параметрам, но не всегда все три должны быть задействованы.
Пример использования:
@Query("select * from M where type=:type and breed=:breed")
fun getModelByBreedAndType(breed:String, type:String) {...}
Таких функций становится очень много, для трех параметров - 2^3 = 8.
Соответственно, хочется сделать функцию getModelByParameters(type, breed, color), с нуллабельными параметрами, которые не участвовали бы в поиске, если передан null.  Подскажите, как реализовать подобное поведение?
(Или хотя бы запрос для гугла, потому что ничего не могу найти подобного)
надо искать с совпадением "или" или "и" ?
источник

QH

Quantum Harmonizer in Android Developers
Anton Brisilin
Вот я тоже об этом подумал. Но у аннотаций же аргументы должны быть вычичлены на этапе компиляции.
Выход - использовать "голый" SQLite?
а нет такой аннотации, чтобы передавать SQL параметром?
(правда, тогда возникает вопрос, как параметры байндить)
источник

AB

Anton Brisilin in Android Developers
Sergey S.
надо искать с совпадением "или" или "и" ?
И
источник

S

Sergey S. in Android Developers
Есть такой лайфак: SimpleSQLiteQuery
В дао над методом нужно указать только @RawQuery(observedEntities = YourFoo.class)

StringBuilder raw = new StringBuilder("SELECT {projection} FROM {yout_table_name} WHERE ");
raw.append(проверяй вводные и добавляй)
источник

AB

Anton Brisilin in Android Developers
Sergey S.
Есть такой лайфак: SimpleSQLiteQuery
В дао над методом нужно указать только @RawQuery(observedEntities = YourFoo.class)

StringBuilder raw = new StringBuilder("SELECT {projection} FROM {yout_table_name} WHERE ");
raw.append(проверяй вводные и добавляй)
Отлично, спасибо. А почему было важно, какой знак стоит между условиями?
источник

S

Sergey S. in Android Developers
Anton Brisilin
Отлично, спасибо. А почему было важно, какой знак стоит между условиями?
эм, не понял
источник

AB

Anton Brisilin in Android Developers
Sergey S.
эм, не понял
Ну, вы спросили И или ИЛИ)
источник

S

Sergey S. in Android Developers
если "или" то можно было один запрос написать.
источник

AB

Anton Brisilin in Android Developers
Sergey S.
если "или" то можно было один запрос написать.
Кстати, да. Вы правы.
Я почему-то не подумал об этом
источник

S

Sergey S. in Android Developers
Anton Brisilin
Кстати, да. Вы правы.
Я почему-то не подумал об этом
можно на "ты", так проще)
источник

S

Sergey S. in Android Developers
Anton Brisilin
Кстати, да. Вы правы.
Я почему-то не подумал об этом
Если бд большая, то можно искать не через IS, а через LIKE (пример поиска по стринговому полю LIKE '%' || 'user query' || '%')
источник

f

full upgrade in Android Developers
Ребята, подскажите пожалуйста, приходит в json:
"\u0420\u0430\u0434\u0438\u043e Energy"
Как раскодировать в текст?
источник

SG

Samwise Gamgee in Android Developers
full upgrade
Ребята, подскажите пожалуйста, приходит в json:
"\u0420\u0430\u0434\u0438\u043e Energy"
Как раскодировать в текст?
Ну, из юникода конверти
источник

f

full upgrade in Android Developers
Да понимаю, хотел узнать, есть ли в андроиде готовые методы для этого?
источник

S

Sergey S. in Android Developers
full upgrade
Ребята, подскажите пожалуйста, приходит в json:
"\u0420\u0430\u0434\u0438\u043e Energy"
Как раскодировать в текст?
Gson использую и никаких раскодировок не делаю. все само
источник