2015-07-20 69 views
0

我在Vaadin中創建了一個數據庫連接。我已經建立了的JDBCConnectionPool後,我創造了這樣一個TableQuery:想知道如何在Vaadin的「TableQuery」中設置過濾器

  TableQuery tq = new TableQuery("STRING", pool, new OracleGenerator()); 

然而,這是非常成功的,因爲我能夠獲得撥款實體(查詢返回的整個表)。

問題是我想過濾這個查詢。我對這個主題的文檔感到非常失望。 TableQuery.setFilters()方法的javadoc指出,我們需要一個包含過濾器的List。

我迄今爲止的做法:

  List<Filter> filter = new ArrayList<Filter>(); 
      filter.add(new Equal("SURNAME", "SMITH")); 
      tq.setFilters(filter); 

這不只是什麼。它甚至不會引發異常。該代碼的工作原理與沒有上述提到的那樣。

有沒有人有一些輸入?

回答

0

對不起,很簡單。我剛剛弄錯了這個概念。你必須過濾容器。

像這樣:

  // tq is the TableQuery (see code snippet provided in the question) 
      SQLContainer container = new SQLContainer(tq); 
      container.addContainerFilter(new Equal("SURNAME", "SMITH")); 

可以幫助別人避免這種 「陷阱」,P