1

テーブル間に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もありません。MyTmpTableMyTmpTable の定義は次のとおりです。

@DatabaseTable
class MyTmpTable {
    ...
    @DatabaseField
    private Long longId;
    ...
}

そして、私は本当にそれを変更することはできません

@DatabaseTable
class MyTmpTable {
    ...
    @DatabaseField(foreign = true)
    private Order order;
    ...
}

一般的な一時結合テーブルとして機能するためです。

のようなものjoinOn(...)が私の問題を解決しますが、ORMLite ではおそらく利用できません。

外部属性が定義されていない2つのテーブルを結合するにはどうすればよいですか?

4

0 に答える 0