2017-11-05 6 views
0

콜렉션 필드에서 Corda의 소비되지 않은 상태 값을 검색하려고합니다. 내가 사용 문자열 필드에 검색 할 수 있어요Corda의 콜렉션 속성에 대한 쿼리

-

 Field uniqueAttributeName = MySchema.PersistentIOU.class.getDeclaredField("fieldname"); 
     CriteriaExpression uniqueAttributeEXpression = Builder.equal(uniqueAttributeName, "valueToSearch"); 

     QueryCriteria customCriteria = new QueryCriteria.VaultCustomQueryCriteria(uniqueAttributeEXpression); 
     result = rpcOps.vaultQueryByCriteria(customCriteria, MyState.class).getStates(); 

위는 괜찮 았는데 "필드 이름이"문자열 때 그러나 나는 목록 또 다른 필드가 나는 목록 내에서 검색하는 방법을 잘 모르겠어요 특정 값.

도와주세요.

답변

0

@ Roger3cev와 간단한 대화 후에 가장 좋은 방법은 상태와 해당 목록에 포함 할 필드 목록간에 부모 - 자식 관계가 있도록 ORM 래퍼를 수정하는 것입니다. 이렇게하면 JDBC 연결을 사용하여 하위 상태에 대해 쿼리 한 다음 부모에 대한 관계를 사용하여 Corda 상태를 가져올 수 있습니다.

+1

나는 Corda Service를 만들었습니다. JDBC를 만들어서 쿼리를 실행하고 라이너 ID를 반환합니다. 그런 다음 Builder.in()을 사용하여 CriteriaExpression을 만들고 Linerid Field와 함께 linerids를 전달합니다. 그런 다음 vortQueryByCriteria를 실행하여 최종 상태를 얻었습니다. –

+0

니스 - 자기 대답하고 싶습니까? –