两个具有相同结构的不同命名表 (GreenDAO)



我正在尝试使用greendao创建两个相同的结构表。所以基本上,我正在做以下工作来实现。创建Position.class

public class Position {
    protected double longitude;
    protected double latitude;
    public Position(double longitude, double latitude) {
        this.longitude = longitude;
        this.latitude = latitude;
    }
    public double getLongitude() {
        return longitude;
    }
    public double getLatitude() {
        return latitude;
    }

然后创建二类当前RouePosition.class

@Entity(
        generateConstructors = false,
        nameInDb = "CURRENT_POSITIONS"
    )
    public class CurrentPosition extends Position{
    public CurrentPosition(double longitude, double latitude) {
        super(longitude, latitude);
    }

不幸的是,它不会创建 DAO 类。我可以做些什么来实现相同的结构不同的名称表在 GreenDAO 中?

GreenDAO目前不支持实体继承。有一些方法可以实现类似的东西,但它们涉及使用较旧的生成器方法(您不应该使用(。https://github.com/greenrobot/greenDAO/issues/362

一般来说,我不明白你为什么要实现另一个与第一个完全相同的类。唯一不同的是插入数据库的时间。相反,我建议为您的实体明确定义一个自动增量 ID。通过这样做,您可以从您的 DAO 类中查询最后一个结果(=最高 id(,这将是您当前的位置。

@Entity
public class Position {
    @Id(autoincrement = true)
    private Long id;
    protected double longitude;
    protected double latitude;
}

查询当前位置:

Position currentPosition = positionDao.queryBuilder()
    .orderDesc(PositionDao.Properties.Id).limit(1).unique();

相关内容

  • 没有找到相关文章

最新更新