テーブル間にORMLite の外部キー定義がない場合に、ORMLite を使用して 2 つのテーブルを結合したいと考えています。
私の問題をよりよく説明するために、ORMLite に生成させたいクエリは次のようになります。
SELECT Order.ID
FROM Order
JOIN MyTmpTable
ON Order.CustomerID=MyTmpTable.CustomerID;
残念ながら、ORMLite で使用できるjoin(...)メソッドには、テーブル間の明示的な外部キー定義が必要です。
別のクエリ ビルダーと結合します。これにより、「INNER JOIN other-table ...」に近いものがSQLに追加されます。現在の QueryBuilder に関連付けられたオブジェクトまたは引数 QueryBuilder のいずれかに、もう一方の外部フィールドが必要です。それ以外の場合は、例外がスローされます。
しかし、外部キー定義Order
もありません。MyTmpTable
MyTmpTable の定義は次のとおりです。
@DatabaseTable
class MyTmpTable {
...
@DatabaseField
private Long longId;
...
}
そして、私は本当にそれを変更することはできません
@DatabaseTable
class MyTmpTable {
...
@DatabaseField(foreign = true)
private Order order;
...
}
一般的な一時結合テーブルとして機能するためです。
のようなものjoinOn(...)
が私の問題を解決しますが、ORMLite ではおそらく利用できません。
外部属性が定義されていない2つのテーブルを結合するにはどうすればよいですか?