2012-12-02 74 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