0

これはかなり単純なはずですが、例が 1 つも見つからないようです。次のようなクエリを作成したいと思います。

SELECT column_name FROM table_name WHERE column_name IN (value1,value2,...)

オプションとして、クエリの最後に OR 句を追加できます。

これまでに書いたコードは、Nullpointer で爆発し続けます。

@Select(sql = "select storename from broadcastrecipient where storecity in (?{1})")
public List<String> getStoresForCities(List<String> theCities) throws SQLException;

前もって感謝します。//アビーン

注: 環境に関する情報を追加するのを忘れていました: PostGres 8.3、Java 1.6、および EOD SQL 0.9。


ありがとうジェイソン。知りたい人のために、クエリは次のようになります。

    @Select(sql = "select distinct(storename) from broadcastrecipient where storecity = any (?{1})", disconnected=true)
    public List<String> getStoresForCities(String[] theCities) throws SQLException;

また、TypeMapper クラスを実装して、SQL 配列を Java 配列にマップする必要もありました。

4

1 に答える 1

1

EoD SQL 2.0(https://eodsql.dev.java.net/ )を確認することをお勧めします。 次に、この状況に合わせて設計されたQueryTool.select()メソッドを確認します。

EoD SQL 0.9には、この種のクエリに対処する機能が組み込まれていません。

本当に醜いハックは、一時テーブルを作成し、それに配列データを入力することです。次に、クエリを次のように実行します。

@Select("SELECT storename FROM broadcastrecipient WHERE storecity IN (SELECT * FROM tmp_cities)")
public List<String> getStoresForCurrentCities();
于 2009-10-14T08:36:51.603 に答える