在ADF中使用AlternateKey進行查詢

來源:互聯網
上載者:User

概述

      在ADF中,實現對VO查詢的方法有多種,例如:

      1、Designtime時添加相應的Criteria,增加Criteria項並關聯到綁定變數,在runtime時賦值給綁定變數並實現查詢。

      2、在Runtime時使用代碼動態建立Criteria和CriteriaRow,以實現查詢

      3、其他

      而當VO對應的主EO中已經定義了唯一性索引,此時有更為簡便的方式實現查詢,即本文中即將進行說明的使用AlternateKey進行查詢。

 

實現

1、建立新應用,建立資料庫連接,基於HR Schema中的employees表建立EO、VO並將VO的執行個體添加到AM中。

2、開啟EO,即Employees,在General面板中添加名為EmailAlternateKey的AlternateKey,由於employees表中有唯一性索引EMP_EMAIL_UK是基於Email欄位的,因此在EmailAlternateKey中將Email選到Seleted。

3、在EmployeesView的General面板中同樣建立名為EmailAltKey的AlternateKey,在Entity-level Alternate Key中選擇在上個步驟中建立好的EmailAltKey。

4、產生AM的實作類別,在AM中添加適當代碼,以實現查詢功能。

public Row findEmployeeByEmail(String email) {<br /> EmployeesViewImpl employeesViewImpl =(EmployeesViewImpl)this.getEmployeesView1();<br /> Key key = new Key(new Object[] { email });<br /> return employeesViewImpl.findByAltKey("EmailAltKey", key, -1, true).first();<br />}

5、在AM的Java面板中,將剛編寫完成的方法發布到Client Interface,以便下面我們使用業務組件瀏覽器進行測試。

6、在AM上點擊右鍵,選擇“Run”,使用業務組件瀏覽器進行測試。選擇到剛發布成功的方法,運行後在參數輸入框內輸入已經存在的Email,這裡為“SKING”,運行成功:)

7、為驗證AltKey使用的是資料表中的唯一性索引,開啟日誌,重新運行後將日誌中的SQL拷貝到PL/SQL Developer中的Explain Plan Window,執行後發現使用的查詢為“INDEX UNIQUE SCAN”且對應的Object Name為EMP_EMAI_UK,說明此查詢使用的確實是唯一性索引。

 

本文轉自Oracle Seeker:http://oracleseeker.com/2009/09/05/adf_altkey_alternatekey_query/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.