升级Objectbox库时出现双字段索引问题

时间:2019-01-11 15:57:30

标签: objectbox

在编写 2.3.1 时,我已将Objectbox从版本 1.5 升级到了最新版本。

当我第一次使用最新版本运行该版本时,系统告诉我从双变量中删除索引,因为目前不支持该索引(为什么?)。

/**
* 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)中已经保存了许多实体,我真的无法让我的用户通过这种(简单的)升级来松开它们。

在删除Lat,Lng上有冲突的@Index之后,代码成功编译,但是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)

看一下default.json文件的差异,似乎它已由Objectbox成功更新,并且Lat,Lng的索引不再存在。

enter image description here

我想念什么?帮助将不胜感激。

0 个答案:

没有答案