Проблема индекса двойного поля при обновлении библиотеки Objectbox - PullRequest
0 голосов
/ 11 января 2019

Я обновил Objectbox с версии 1.5 до новейшей на момент написания 2.3.1 .

Когда я впервые запустил сборку с самой новой версией, мне сказали убрать индекс из двойных переменных, так как он не поддерживается в данный момент (как получилось?).

/**
* Before (working flawlessly on Objectbox version 1.5)
*/
@Entity
public class MyEntity {
    @Id(assignable = true) private long id;
    private String Name;
    private String Address;
    private String Name;
    private String Meta;
    @Index private Double Lat; 
    @Index private Double Lng;
}


/**
* After removing conflicting indexes (Objectbox version 2.3.1)
*/
@Entity
public class MyEntity {
    @Id(assignable = true) private long id;
    private String Name;
    private String Address;
    private String Name;
    private String Meta;
    private Double Lat; // removed @Index
    private Double Lng; // removed @Index
}

В базе данных Objectbox (lib версии 1.5) уже сохранено много сущностей, и я действительно не могу позволить своим пользователям потерять их при таком (тривиальном) обновлении.

Код успешно компилируется после удаления конфликтующего @Index на Lat, Lng, но как только Objectbox инициализирует свою базу данных, я получаю следующее RuntimeException.

java.lang.RuntimeException: Unable to create application com.activity.MyApplication: 
 io.objectbox.exception.DbException: 
 Indexing of float and double is currently unavailable. Please remove the index on Property Lat (5, Double)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5743)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)

Глядя на diff файла default.json, кажется, что он был успешно обновлен Objectbox, и индексы для Lat, Lng больше не присутствуют.

enter image description here

Что мне не хватает? Помощь будет высоко ценится.

...