我试图用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;
}
然后创建第二个类CurrentRouePosition.class
@Entity(
generateConstructors = false,
nameInDb = "CURRENT_POSITIONS"
)
public class CurrentPosition extends Position{
public CurrentPosition(double longitude, double latitude) {
super(longitude, latitude);
}
不幸的是,它并没有创建DAO类。我怎样才能在GreenDAO中实现相同结构的不同名称表?
答案 0 :(得分:0)
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();