0

複数の @Id (JPA アノテーションでアノテーションが付けられた) フィールドと、ormlite がサポートしていないその他のアノテーションを持つ、変更できないクラスがあります。そのため、クラスに注釈を付けるために Java コードを使用してテーブルを作成しています。

ただし、クラスに追加のフィールドを追加する機能がないと、複数の主キー - ORMliteで説明されている UniqueCombo トリックは機能しません。たとえば、次のような理由があります。

class A {
  @Id
  int key1;

  @Id
  int key2;
}

次の Java コードを使用して、ormlite テーブル構成を作成します。

DatabaseField f = new DatabaseField("key1");
f.setId(true);
f.setUniqueCombo(true);
fieldConfig.add(f);

f = new DatabaseField("key2");
f.setUniqueCombo(true);
fieldConfig.add(f);

それらのいずれかを PK (setId(true)) として設定すると、データが実際に異なる場合、同じキーで別の行を作成しようとすると、DB は満足しません。クラスAを変更せずにこの問題を解決する方法はありますか?

4

1 に答える 1

0

いいえ、ORMlite は 1 つのフィールドのみを主キーとして許可します。

于 2013-09-28T04:59:24.313 に答える