2009-10-13 4 views
0

하나의 예제를 찾을 수는 없지만 이것은 매우 간단해야합니다. 나는이처럼 보이는 쿼리를 만들려면 :EOD SQL을 사용하여 동적 쿼리를 만드는 방법은 무엇입니까?

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; 

사전에 감사합니다. // Abean

참고 : 내 env : 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; 

을 그리고 나는 또한 자바 배열 SQL-배열을 매핑 할 TypeMapper 클래스를 구현하는 데 필요한.

+0

어떤 데이터베이스를 사용하고 있습니까? –

+0

그 점에 대해 죄송합니다. PostGres 8.3. – ABeanSits

답변

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(); 
관련 문제