1

我对 Android 应用程序中的 ORMlite 用法很感兴趣。但是有一个问题。第一步是注释你的类,但我需要这样的东西:

@DatabaseField(columnName = "geometry", useGetSet = true)
String JSONgeometry;

@Formula (nativeSQL = "ShapeFromJSONText(JSONgeometry)")
public void set(String JSONgeometry){
    this.JSONgeometry = JSONgeometry;
}

@Formula (nativeSQL = "asJSONtext(geometry)")
public String get(){
    return JSONgeometry;
}

有没有办法在注释中插入原生 SQl 函数?有没有办法使用 BasePersister 来解决这个任务?

4

1 回答 1

0

您能否更具体地说明什么功能ShapeFromJSONText和具体功能asJSONtext

我从您的方法中感觉到您想将对象保存在几何字段中。

在模型中创建单独的类:

class Geometry {
    @DatabaseField(generatedId = true)
    int id;

    @DatabaseField
    float field1;
    @DatabaseField
    float field2;
}

在您的父类中,像这样引用它:

class Shape {
    @DatabaseField(foreign = true)
    Geometry geometry;
}

当然,如果您不想保存对象而只想保存它的 JSON 表示,您可以将其保存到String字段中。

如果您想使用 SQL 函数以某种方式更改保存的对象,您也可以在 Java 中的 getter 和 setter 中进行操作。

于 2013-11-05T01:33:04.610 回答