2012-12-02 73 views
1

關於我知道的語言RPG ...您可以使用多個鍵並查找檢索記錄的值。使用多個鍵檢索記錄。 OPENJPA

像桌子一樣。我可以選擇鍵lolo和蘋果來檢索性巫婆的價值是F. Howerver我找不到一些在OPENJPA中是這樣的功能。find()只能使用一個鍵?有沒有類似find(names.class,「LOLO」,「Apple」)的鍵是F_NAME和L_NAME?

Names 
F_NAME L_NAME Sex 
LOLO  Apple  F 

Ben  Coke  M 

在閱讀JPA,通常該表有P_ID

P_ID  F_NAME L_NAME Sex 
1  LOLO  Apple F 
2  Ben  Coke M 

檢索記錄洛洛蘋果,我需要使用這個代碼..

Names name = em.find(Names.class, 1); 

你將如何知道性別,如果給定的值是F_NAME?和L_NAME?在SQL你可以說SELECT * FROM名,其中F_NAME =洛洛,L_NAME =「蘋果」,它會輸出

P_ID  F_NAME L_NAME Sex 
1  LOLO  Apple F 

從,你可以說,性愛= F. 就像我想知道,如果蘋果洛洛是男性還是女性,我將在數據庫中搜索lolo apple ...不是P_ID = 1.我將如何知道Lolo Apple的P_ID是什麼。

希望你明白我的意思..謝謝。

或者也許在JPA的另一部分方程式中,如何在不知道P_ID(主鍵)的情況下檢索要更新的記錄,就像您只知道名字和姓氏一樣?

+0

我在樣本中看到的是 – toksis

回答

2

如果你看看OpenJPA documentation它定義了JPA查詢語言[JPQL]。那不是開始的地方嗎?


UPDATE

如果要指定幾個鍵值,爲什麼不指定它們在WHERE子句中的JPQL,就像你在SQL做。

SELECT ... 
    WHERE colX = val1 and colY = val2 and colZ = val3 
+0

@wattenT您的意思是find()方法只允許一個鍵嗎?女巫是主要的?所以如果我的關鍵是像名字和姓氏..有沒有辦法檢索它使用find(類,firstname,lastname)..你需要做jpql然後找到(類,P_ID)來填充實體? – toksis

+0

您是否熟悉SQL,例如可以嵌入到您的RP​​G程序中?它在我看來JPQL是相似的。我可以想象JPA設計的意圖是,您將它與JPQL一起使用,與RPG中的嵌入式SQL一樣,而不是模仿RPG本機I/O。但是,這僅僅是基於粗略的文檔概述,我沒有直接的經驗,所以請進一步驗證。我沒有深入探討JPQL如何工作的細節,或者在DB2 for i上是否有任何問題使用它。 – WarrenT

+0

是的,我也在RPG中使用SQL ..我只是想知道,如果他們是在JPA相關的鏈接()在RPG中的方法,你可以使用許多鍵,並將其放置在鍵列表。然後從他們的,可以檢索到一條記錄.. http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/index.jsp?topic=/com.ibm.etools.iseries.langref.doc/evferlsh270 .htm 也許我只需要使用JPQL檢索記錄,然後使用find()填充實體,然後使用merge()更新da記錄。 – toksis