2012-12-02 2 views
1

내가 아는 언어에서 RPG ... 여러 개의 키를 사용하여 레코드 값을 검색 할 수 있습니다.여러 키가있는 레코드 검색. OPENJPA

테이블과 같습니다. 섹스 마녀의 가치를 검색 할 키 lolo과 사과를 선택할 수 있습니다. Howerver OPENJPA에서 이와 같은 몇 가지 기능을 찾을 수 없습니다. find()는 하나의 키만 사용할 수 있습니까? 키가 F_NAME 및 L_NAME 인 find (names.class, : "LOLO", "Apple")와 같은 것이 있습니까?

Names 
F_NAME L_NAME Sex 
LOLO  Apple  F 

Ben  Coke  M 

JPA를 읽는 동안은, 보통 표는 알고 얼마나 .. 내가이 코드를 사용하는 데 필요한 기록 롤로 사과를 검색하려면

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

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

P_ID

있다 주어진 값이 F_NAME이면 성별은? 및 L_NAME? SQL에서 당신은 어디서 F_NAME = 롤로, L_NAME = "애플"이름 SELECT * FROM 말할 수 있습니다 그 것이다 내가 알고 싶은처럼 당신이 섹스 = F. 말할 수에서 출력

P_ID  F_NAME L_NAME Sex 
1  LOLO  Apple F 

롤로 사과 남성이거나 여성인데, 데이터베이스에서 lolo apple을 검색 할 것입니다 ... P_ID = 1이 아닙니다. 어떻게 Lolo Apple의 P_ID가 무엇인지 알 수 있습니다.

바라건대 내가 무슨 뜻인지 알기를 바랍니다. 감사.

또는 방정식의 다른 부분 인 JPA에서 이름을 알고있는 것처럼 P_ID (기본 키)를 모르는 상태에서 업데이트 할 레코드를 검색하는 방법은 무엇입니까?

+0

샘플에서 볼 수있는 것은 – toksis

답변

2

OpenJPA documentation을 보면 JPA 쿼리 언어 [JPQL]를 정의합니다. 그 장소가 시작하지 않겠습니까? 당신은 SQL에서하는 것처럼

여러 키 값을 지정하려면


UPDATE, 왜 그냥 JPQL의 WHERE 절에를 지정하지.

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

입니다. @wattenT find() 메서드는 하나의 키만 허용합니까? 마녀가 주인공 이니? 그래서 만약 내 키가 성 (lastname)과 같다면 ... find (class, firstname, lastname)를 사용하여 그것을 검색 할 방법이 없다. jpql을 수행 한 다음 엔티티를 채우기 위해 find (class, P_ID)가 필요하다? – toksis

+0

예를 들어 RPG 프로그램에 임베드 될 수있는 SQL에 익숙합니까? JPQL은 비슷합니다. JPA 디자인의 의도는 RPG 기본 I/O를 모델로하기보다는 RPG에 포함 된 SQL과 같은 줄을 따라 JPQL과 함께 사용한다는 것입니다. 그러나 이것은 문서의 대략적인 개요에만 기반을두고 있으며 직접 경험 한 바가 없으므로이 점을 자세히 확인하십시오. JPQL의 작동 방식이나 DB2 for i에서 사용하는 데 문제가 있는지 여부에 대해 자세히 설명하지 않았습니다. – WarrenT

+0

그래, 또한 rpg에 SQL을 사용합니다 .. 나는 많은 키를 사용할 수있는 RPG의 체인()과 관련된 JPA의 메소드인지, 키 목록에 배치했는지 궁금합니다. 그런 다음 해당 레코드를 검색 할 수 있습니다. http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/index.jsp?topic=/com.ibm.etools.iseries.langref.doc/evferlsh270 .htm 아마 그냥 JPQL을 사용하여 레코드를 검색 한 다음 find()를 사용하여 엔티티를 채운 다음 병합()하여 da 레코드를 업데이트해야합니다. – toksis

관련 문제