Android use foreign object of OrmLite

Android 也有很好用的 ActiveRecord 可以應用,OrmLite提供了非常多的函式方便應用,架構也非常清楚,在跟 SqlLite 溝通時不再需要自己造輪子。

這邊記錄當 ValueObject 有繼承關係,又必須要有主附表關係時 OrmLite 的 Foreign Key 應用方法。

建立 Major

類似像 MySql 的主附表應用,主表如下,@DatabaseTable是用在若要另外建立表名,則必須要設定這個值,若沒設定預設會用 class 的名字建立。 @DatabaseField則是欄位名稱。

package com.data;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

/**
* Created by Alan on 2013/9/18.
*/
@DatabaseTable(tableName="Major")
public class Major {

  @DatabaseField
  private String parent;

  public void setParent(String parent) {
    this.parent = parent;
  }

  public String getParent() {
    return this.parent;
  }

}

建立 Minor

當 Minor 與 Major 是繼承關係時,同時又必須要包含另外的物件。這邊的@DatabaseField在參數中有foreign代表著這個屬性是外部鍵,指向另外一個物件的主鍵。並且foreignAutoRefresh是新增一筆資料後不用另外 refresh。

建立外部物件

外部物件若要和別的物件有 Composition 的關係,在這邊必須要有主鍵,而我設定generatedId=true就類似 MySql 的auto_increment屬性,讓物件可以自動生成 ID,以便和別的物件建立指向關係。

Usage

當這些關係建立後。可以用下列方法取得主物件的屬性

也可以用下列方法取得外部物件的屬性。

我覺得用起來超方便的,而且架構很清楚。

Oct 1st, 2013 12:58:00am

Last updated

Was this helpful?