2012-04-10 4 views
0

私はアンドロイドのORMLiteを試しています。Ormliteは単純なメンバークラスにフィールドをマッピングします

私はアンドロイドデバイスにロードしているSQLite dbをあらかじめ構築してあります。私はLocationX、LocationY列として位置情報を格納しています

CREATE TABLE graphicsinstances(Name STRING , LocationX FLOAT , LocationY FLOAT , SizeX FLOAT , SizeY FLOAT); 

キャッチされ、私はこのようなものを見たいのですが、実行時に:

public class Vector2 
{ 
    public float X; 
    public float Y; 
} 
@DatabaseTable(tableName = "graphicsinstances") 
public class graphicsinstance 
{ 
    public GraphicalEntityInstance() 
    { 
     mName    = null; 
     mPosition   = Vector2.zero(); 
     mSize    = Vector2.zero(); 
    } 
    @DatabaseField(columnName = "Name", canBeNull = false) 
    public String mName; 

    //Olympic standard optimism 
    //@DatabaseField(columnName = "Location", canBeNull = false) 
    //public Vector2 mPosition; 

    // current (unsatisfactory) method: 
    @DatabaseField(canBeNull = false, useGetSet=true) 
    private float LocationX; 
    public float getLocationX() { return mPosition.X;} 
    public void setLocationX(float x) { mPosition.X = x;} 
    // repeat for Y, SizeX & SizeY! 
} 

を私が何かを明らかに見逃しているか、私は完全に吠えています間違った木をアップ?誰か代替/きれいな方法を提案することができますか?

+0

質問が分かりません。あなたはこれに問題がありますか?コンパイルしたり実行したりしませんか?あなたはどんなエラーを出していますか? – Gray

+0

申し訳ありませんが、LocationX&LocationY列のデータをmPositionインスタンスのX&Yフィールドにマップしたいと考えています。 getsetメカニズムを使用した私の回避策は機能しますが、未使用のメンバ変数が導入され、間違った方法でそれをやっていると思うようになります。 -/ – user1323843

答えて

0

私が理解している場合、サブクラスを持つクラスにテーブルをマップする必要があります。あなたの例では、LocationXLocationYフィールドをmpositionにロードしたいと思います。これはVector2でしょうか?

は、私はLocationXLocationYフィールド間のマッピングを行うgetMPosition()setMPosition(mpos)メソッドを持ってしても大丈夫だと思いますが、あなたはORMLiteで自動魔法のようにそのマッピングを行うことができるようにするつもりはありません。


純粋な観点からは、どのデータベースサークルが「エンティティクラス」と呼ばれるのかを常に推奨します。このクラスは、データベース構造を正確に反映します。テーブル内のフィールドとクラスの間には、1対1の対応が必要です。 hashCode(),equals()のようなメソッドと標準のgetter/setterを持つことができますが、その他のメソッドはほとんどありません。

GraphicsInstanceオブジェクトをコンストラクタにとり、Vector2マッピングを実行し、他の操作を許可するラッピングオブジェクトを作成できます。あなたがGraphicsInstanceオブジェクトに戻る必要があるときにそれを保持する準備ができたら。

+0

これは間違いなく良い解決策のようです。私はそれを試してみます;) あなたの迅速な返信をありがとう! – user1323843