使用多个键检索记录。 OpenJPA的

时间:2012-12-02 21:19:27

标签: sql java-ee jpa openjpa rpgle

在我所知道的语言上,RPG ...您可以使用多个键并查找检索记录的值。

喜欢桌子。我可以选择键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

要检索记录lolo apple,我需要使用此代码..

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

如果给定的价值是F_NAME,您如何知道性别?和L_NAME?在SQL中你可以说选择*来自名字,其中F_NAME = Lolo,L_NAME =“Apple”,它将输出

P_ID     F_NAME  L_NAME  Sex
1        LOLO     Apple   F 

从中你可以说性别= F. 就像我想知道lolo apple是男性还是女性一样,我会在数据库上搜索lolo apple ...不是P_ID = 1.我怎么知道Lolo Apple的P_ID是什么。

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

或者在JPA的另一部分中,如何在不知道P_ID(主键)的情况下检索要更新的记录,就像您只知道名字和姓氏一样?

1 个答案:

答案 0 :(得分:2)

如果查看OpenJPA documentation ,它定义了JPA查询语言[JPQL]。那不是开始的地方吗?


<强>更新

如果要指定多个键值,为什么不在JPQL的WHERE子句中指定它们,就像在SQL中一样。

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