1

Android アプリケーションでの ORMlite の使用に興味があります。しかし、問題が 1 つあります。最初のステップはクラスに注釈を付けることですが、次のようなものが必要です:

@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でもゲッターとセッターで行うことができます。

于 2013-11-05T01:33:04.610 に答える