나는 다음과 같은 DAO 방법이 있습니다자바 네이티브 SQL 쿼리는 모든 값을 표시합니다
public String getSomeTable(final String param1) {
String sqlString = "select * from table where name ilike ?";
Query query = this.getEntityManager().createNativeQuery(sqlString);
query.setParameter(1, "%param1%");
}
경우 param1
이 null
또는 빈 후 나는 테이블에서 모든 항목을 선택합니다을. 이 작업을 수행하는 올바른 방법은 무엇입니까? 현재 다음을 사용 중입니다 :
public String getSomeTable(final String param1) {
String sqlString = "select * from table where name = ?";
Query query = this.getEntityManager().createNativeQuery(sqlString);
if(param1 == null)
query.setParameter(1, "%%");
else
query.setParameter(1, "%param1%");
}
그러나 이것은 확장 가능하지 않습니다. 정수, 날짜 등과 같은 데이터 유형이 있습니다. null
인 경우 해당 매개 변수를 검사하지 않고 건너 뛸 수있는 방법이 있는지 알고 싶습니다.
나는 COALESCE (?, CASE WHEN? = ''THEN 'ELSE'%? % ')를 사용할 계획 이었지만 생각 하나? 특정 매개 변수에 대해 한 번만 사용할 수 있습니다. 다음에 쓰는 것은> 두 번째 매개 변수에 연결됩니다. SQL 서버에
가능한 복제 ([SQL 쿼리 파라미터가 null의 모두 선택하는 경우] http://stackoverflow.com/ 질문/13474207/sql-query-if-parameter-is-null-select-all) – Julian
테이블에서 null 열 값을 허용합니까? 그렇다면 질의를 다음과 같이 변경해야합니다. select * from table where name is null –
어떤 DB를 사용하고 있습니까? – Julian