OrientDB getVertices가 Java 생성 클래스 / 인덱스에서 작동하지 않습니다.

나는 원한다

요약

개념 증명을 위해 OrientDB를 사용하고 있으며 Java API를 통해 생성 된 클래스 / 복합 인덱스를 쿼리하는 데 문제가 있습니다.

클래스를 만들고 몇 가지 속성을 추가하고 API를 사용하여 복합 색인을 생성 한 다음 샘플 레코드를 추가했습니다. Studio를 사용하여 모든 것이 괜찮아 보이는지 확인했습니다. 그런 다음 getVertices(String label, String[] keys, Object[] values)샘플 레코드를 가져 오려고했지만 결과를 얻지 못했습니다.

색인과 클래스를 제거하고 Studio UI를 사용하여 다시 만들고 getVertices 코드를 실행하면 레코드가 성공적으로 검색되었습니다.

조사 과정에서 Java API를 사용하여 클래스 / 인덱스를 다시 만들고 잘못된 레이블 (V를 확장 한 UI를 통해 생성 된 클래스)을 제공했고 레코드가 성공적으로 검색되었는데 이상했습니다.

Java에서 만든 클래스 / 색인이 UI에서 만든 것과 다르게 작동하는 이유는 무엇입니까? 내가 뭘 잘못하고 있니?

환경 배경

저는 OrientDB Enterprise 2.0.3과 2.0.x orientdb- * 및 blueprints-core jars를 사용하고 있습니다.

세부

다음과 같이 Java 클래스 / 인덱스를 만들고 있습니다 (단순함을 위해 줄임, 무고한 사람을 보호하기 위해 문자열이 변경됨).

//graph is an OrientGraph

//Create a new class that extends V
OClass vt = graph.createVertexType("MyClass", "V");

String[] props = {"first", "second", "third"}; //Property names

for(String prop : props)
  vt.createProperty(prop, OType.STRING);

//Create unique composite index using all properties
vt.createIndex("myClass.myIndex", OClass.INDEX_TYPE.UNIQUE, props);

graph.commit();

다음과 같이 그래프에 레코드를 추가하고 Studio에 표시되었음을 확인했습니다 (MyClass에서 * 선택).

Vertex v = graph.addVertex("class:MyClass");
v.setProperty("first", "foo");
v.setProperty("second", "bar");
v.setProperty("third", "ed");

graph.commit();

그래프를 쿼리하기 위해 다음을 사용합니다.

String[] keys = {"first", "second", "third"};
String[] values = {"foo", "bar", "ed"};

//Using getVertices to get records from a specific class with specified key values.
//There could be multiple classes with the same properties, so I have to be able
//to look for a set of properties within a specific class.
Iterable<Vertex> resultIterator = graph.getVertices("MyClass", keys, values);

for (Vertex v : resultIterator){
    results.add(v); //Store result references for later use
}

또한 그것이 graph.isUseClassForVertexLabel()사실임을 확인했습니다 .

내가 뛰면 graph.getVertices("MyClass",keys,values)아무것도 돌아 오지 않습니다.

graph.getVertices("DummyClass",keys,values)DummyClass가 V를 확장하고 MyClass와 완전히 다른 속성을 가진 Studio에서 생성 된 임의의 클래스 인 곳에서 실행 하면 결과가 나타납니다. 이 경우에는 결국 동일한 속성을 가진 여러 클래스가있을 수 있고 속성 집합을 사용하여 특정 클래스의 레코드를 쿼리 할 수 ​​있어야하기 때문에 두렵습니다. 여러 데이터에서 결과를 가져오고 싶지 않습니다. 다른 수업 ...

Studio UI에서 MyClass를 다시 만들고를 실행 graph.getVertices("MyClass",keys,values)하면 예상 한 결과가 나타납니다.

나는 원한다

OrientDB repo에서 이에 대한 이슈 ( # 3889 )를 생성했습니다 . 수정되었습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Javascript 클래스 생성자가 작동하지 않습니다.

분류에서Dev

생성자가 Java 클래스에서 정의되지 않았습니다.

분류에서Dev

CSS onclick 활성 클래스가 작동하지 않습니다.

분류에서Dev

Expression.Lamda가 동적으로 생성 된 클래스에서 작동하지 않습니다.

분류에서Dev

OrientDB에서 Java API에서 한 클래스가 다른 클래스에서 상속되는지 여부를 확인하는 방법은 무엇입니까?

분류에서Dev

Java / Android (클래스-> 익명 클래스)에서 재정의가 작동하지 않습니다. 왜?

분류에서Dev

WEKA에서 생성 한 모델은 속성 인덱스가 주어지면 클래스 및 분포를 예측하지 않는 것 같습니다.

분류에서Dev

Java 클래스 함수가 제대로 작동하지 않습니다.

분류에서Dev

C ++ 파생 클래스가 제대로 작동하지 않습니다.

분류에서Dev

클래스 연결 목록의 복사 생성자가 작동하지 않습니다.

분류에서Dev

활성 클래스 메뉴 HTML-CSS-JS가 작동하지 않습니다.

분류에서Dev

ViewBinding 클래스가 생성되지 않았습니다.

분류에서Dev

orientdb는 동시에 인덱스를 작성할 수 없습니다.

분류에서Dev

@Autowired가 @Configurable 클래스에서 작동하지 않습니다.

분류에서Dev

로거 핸들러가 다른 클래스 Java에서 작동하지 않습니다.

분류에서Dev

Vue prop 시계가 클래스 스타일 구성 요소에서 작동하지 않습니다.

분류에서Dev

onClickListener를 구현하는 Java 클래스에서 setResult가 작동하지 않습니다.

분류에서Dev

클래스에서 PHP 생성자가 호출되지 않았습니다.

분류에서Dev

자동 생성 된 프록시 클래스가 서비스 계약과 일치하지 않습니다.

분류에서Dev

클래스의 유효성 검사가 집합에서 작동하지 않습니다.

분류에서Dev

배열의 다형성 하위 클래스 개체 메서드가 작동하지 않습니다.

분류에서Dev

GestureRecognizer의 하위 클래스가 작동하지 않습니다.

분류에서Dev

Typecasting PFObject 하위 클래스가 작동하지 않습니다.

분류에서Dev

Init 하위 클래스가 작동하지 않습니다.

분류에서Dev

새 Java 클래스가 작동하지 않습니다. 내가 무엇을 잘못하고 있지?

분류에서Dev

Jquery 추가 클래스가 작동하지 않습니다.

분류에서Dev

JSSProvider가 classNamePrefix로 클래스 접두사를 생성하지 않습니다.

분류에서Dev

LocationListener의 RemoveUpdates가 서비스 클래스에서 작동하지 않습니다.

분류에서Dev

새 Grails 도메인 클래스가 데이터베이스에 테이블을 생성하지 않습니다.

Related 관련 기사

  1. 1

    Javascript 클래스 생성자가 작동하지 않습니다.

  2. 2

    생성자가 Java 클래스에서 정의되지 않았습니다.

  3. 3

    CSS onclick 활성 클래스가 작동하지 않습니다.

  4. 4

    Expression.Lamda가 동적으로 생성 된 클래스에서 작동하지 않습니다.

  5. 5

    OrientDB에서 Java API에서 한 클래스가 다른 클래스에서 상속되는지 여부를 확인하는 방법은 무엇입니까?

  6. 6

    Java / Android (클래스-> 익명 클래스)에서 재정의가 작동하지 않습니다. 왜?

  7. 7

    WEKA에서 생성 한 모델은 속성 인덱스가 주어지면 클래스 및 분포를 예측하지 않는 것 같습니다.

  8. 8

    Java 클래스 함수가 제대로 작동하지 않습니다.

  9. 9

    C ++ 파생 클래스가 제대로 작동하지 않습니다.

  10. 10

    클래스 연결 목록의 복사 생성자가 작동하지 않습니다.

  11. 11

    활성 클래스 메뉴 HTML-CSS-JS가 작동하지 않습니다.

  12. 12

    ViewBinding 클래스가 생성되지 않았습니다.

  13. 13

    orientdb는 동시에 인덱스를 작성할 수 없습니다.

  14. 14

    @Autowired가 @Configurable 클래스에서 작동하지 않습니다.

  15. 15

    로거 핸들러가 다른 클래스 Java에서 작동하지 않습니다.

  16. 16

    Vue prop 시계가 클래스 스타일 구성 요소에서 작동하지 않습니다.

  17. 17

    onClickListener를 구현하는 Java 클래스에서 setResult가 작동하지 않습니다.

  18. 18

    클래스에서 PHP 생성자가 호출되지 않았습니다.

  19. 19

    자동 생성 된 프록시 클래스가 서비스 계약과 일치하지 않습니다.

  20. 20

    클래스의 유효성 검사가 집합에서 작동하지 않습니다.

  21. 21

    배열의 다형성 하위 클래스 개체 메서드가 작동하지 않습니다.

  22. 22

    GestureRecognizer의 하위 클래스가 작동하지 않습니다.

  23. 23

    Typecasting PFObject 하위 클래스가 작동하지 않습니다.

  24. 24

    Init 하위 클래스가 작동하지 않습니다.

  25. 25

    새 Java 클래스가 작동하지 않습니다. 내가 무엇을 잘못하고 있지?

  26. 26

    Jquery 추가 클래스가 작동하지 않습니다.

  27. 27

    JSSProvider가 classNamePrefix로 클래스 접두사를 생성하지 않습니다.

  28. 28

    LocationListener의 RemoveUpdates가 서비스 클래스에서 작동하지 않습니다.

  29. 29

    새 Grails 도메인 클래스가 데이터베이스에 테이블을 생성하지 않습니다.

뜨겁다태그

보관