5

Person通常、ORMLite を使用して db テーブルに永続化されるクラスがあるとします。

今、私はそのPersonクラス内に というメンバーを持っていHouseます。このHouseクラスには 3 つのプロパティが含まれており、データベースに格納されることはありません。

私が望むのは、永続化されるたびに、テーブルPersonの 3 つのフィールドを 3 つの異なる列に格納したいということです。HousePerson

したがって、Person テーブルには : が含まれます{ person_name, person_contact, house_address, house_type, house_date }

最後の 3 つのフィールドはHouseオブジェクトから取得されます。

DataPersisterメンバー変数で aを使用する必要があると思いHouseますが、これはオブジェクト全体を 1 つのHouse列に書き込むことを意味しますか? Personテーブル内で3列に分割したい。誰か助けてくれませんか?

ありがとう!

4

3 に答える 3

7

実際、Serializable オブジェクトの完全な回避策は次のようになります。

@DatabaseField (dataType = DataType.SERIALIZABLE) 
public Person person;

その結果、Person は通常のプリミティブ変数として単一の列に格納されます。

于 2012-12-11T12:40:39.170 に答える
6

あなたが求めているのは埋め込みオブジェクトと呼ばれるものです。サブオブジェクトのすべてのフィールドは、親オブジェクトに格納されます。

申し訳ありませんが、現在 (2012 年 12 月) ORMLiteは埋め込みオブジェクトをサポートしていません。TODO リストに載っていますが、予定はありません。@ user999717 が述べたように、自動的に更新できる外部オブジェクトをサポートしています。これにより、Houseオブジェクトを別のテーブルに格納でき、Person. そのためのドキュメントは次のとおりです。

http://ormlite.com/docs/foreign

于 2011-10-21T20:42:50.950 に答える