Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
asttoxa
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 66
1

Realm migration что то не так :(

30.05.2017, 23:44. Просмотров 337. Ответов 4
Метки нет (Все метки)

Ребят подскажите плз что делаю не так.

Добавил поле. Поставил сеттеры и геттеры.

В migration объявил, что нужно добавить поле в базу.
Вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 if (oldVersion == 1 && newVersion == 2) {
 
            RealmObjectSchema ingredientSchema = schema.get("Ingredient");
 
            ingredientSchema
                    .addField("contentOfWater", float.class)
                    .transform(new RealmObjectSchema.Function() {
                        @Override
                        public void apply(DynamicRealmObject obj) {
                            obj.set("contentOfWater", 0);
                        }
                    });
            oldVersion++;
        }
приложенька крашится на строке, там где нужно установить всем нули (obj.set("contentOfWater", 0)
что мол нет такой буквы в этом слове.

" java.lang.IllegalArgumentException: Illegal Argument: ColumnType of 'contentOfWater' is invalid."

Что то может пропустил?

Заранее благодарю мудрейших
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2017, 23:44
Ответы с готовыми решениями:

Поиск в Realm +RxJava+RxBindings
Есть код поиска,но мне не нравится его поведение, есть ощущение что ищется только 1 раз и все, в...

Realm занимает слишком много памяти
Доброй ночи. Есть приложение, к которому подключена БД realm. Мне нужно хранить в ней...

Сервер сообщает, что находится в режиме Realm
Добрый день. Сделал в SpringSecurity Basic аутентификацию. @Override protected void...

Что не так с кодом? ( пытаюсь понять, что не так? )
Есть исходный код. Hook, работает хорошо, но есть минус огромный - перестаёт писать в лог, при...

И так, что не так с моим запросом на добавление записи в таблицу?
$sql = 'INSERT INTO product ' . '(name, code, price, category_id, brand,...

4
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
31.05.2017, 11:16 2
asttoxa, у меня нет функции трансформации сразу же за миграцией. Может ее стоит убрать и посмотреть, какими значениями инициализируется это поле по умолчанию?

Добавлено через 3 минуты
или попробовать .addField("contentOfWater", float.class, FieldAttribute.REQUIRED)
0
asttoxa
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 66
31.05.2017, 11:16  [ТС] 3
Ну посмотреть можно. Но я то взял за основу пример с офф сайта
вот тут https://github.com/realm/realm-java/...Migration.java
Точно так же указано одновременно и добавляет поле и вставляет значения.
Хотя есть разница, что в их примере поле, которое они добавляют, является REQUIRED. Может еще в этом дело.
0
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
31.05.2017, 11:22 4
asttoxa, вы ведь все свои значения инициализируете. Значит вы хотите, чтоб это поле было всегда заполненным, так что скорей всего в модели нужно указать эту аннотацию и в схеме миграции.
1
asttoxa
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 66
31.05.2017, 21:18  [ТС] 5
demixdn Логично. Попробую обязаловку влепить. Спс

PS А если не указываю значение и поле в базе создается, но остается пустым. При получении экземпляра из базы оно будет равно NULL??

Добавлено через 9 часов 54 минуты
Все что мы говорили ранее не работает.
Нашел методом тыка в чем косяк..
было так:
Java
1
obj.set("contentOfWater", 0);
а нужно так:
Java
1
obj.setFloat("contentOfWater", 0);
И для разных типов разные сеты... Может кому пригодится.
Только вот одно не вкурю, в офиц док. Ни слова о том, что функция установки зависит от типа. Они даже в примере String ставят обычным set()...
Всем спасибо. Вопрос закрыт.
0
31.05.2017, 21:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2017, 21:18

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее?
Вот код: #include <iostream> #include <conio.h> using namespace std; int main(){ float...

Что в коде ни так? while не работает так, как ожидаю
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от...

Realm of Racket
Realm of Racket Learn to Program, One Game at a Time! by Matthias Felleisen, David Van Horn,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru