2017-12-20 22 views
0

neo4J를 사용하여 내 자신의 사용자 정의 프로 시저를 만들려고합니다. Windows 용 neo4j 설치 프로그램 (v3.2.6)을 실행하고 있습니다. 나는이 tutorial을 따라 아래에있는 내 자신의 간단한 절차를 작성 : 이 데이터베이스 인스턴스에 대해 'example.convertDirection` 이름이 등록 된 프로 시저가 없습니다.

package example; 
import java.util.List; 

import org.neo4j.procedure.Description; 
import org.neo4j.procedure.Name; 
import org.neo4j.procedure.UserFunction; 

public class ConvertDirection{ 

@UserFunction 
@Description("example.convertDirection('v') - returns full direction name VERTICAL.") 
public String convertDirection(
     @Name("string") String string) { 
    if (string.equals(null)) { 
     return null; 
    } 
    if(string.equalsIgnoreCase("v")){ 
     return "VERTICAL"; 
    } else if (string.equalsIgnoreCase("h")){ 
     return "HORIZONTAL"; 
    } else { 
     return "BOTH"; 
    } 
} 
} 

내가 내 자신의 테스트 클래스를 생성 및 MVN 깨끗한 패키지를 실행하는 항아리를 생성합니다.

그 다음에 필자는 두 개의 플러그인 폴더 (C : \ Users \ var \ lib \ neo4j \ data \ databases \ graph.db \ plugins 및 C : \ Program)에 procedure-template-1.0.0-SNAPSHOT을 넣었습니다. Files \ Neo4j CE 3.1.1 \ plugins).

그럼 neo4j.conf를 here으로 변경하여 플러그인 경로를 포함 시켰습니다. 두 가지 방법으로 파일/플러그인 및 graph.db/plugins을 모두 프로그래밍 해 보았습니다.

dbms.directories.plugins = c : /Users/var/lib/neo4j/data/databases/graph.db/ 플러그인 dbms.directories.plugins = c :/Program Files/Neo4j \ CE \ 3.1.1/plugins

서버를 다시 시작한 후에도 여전히이 오류가 발생하고 프로 시저가 나열되지 않습니다.

이 데이터베이스 인스턴스에 등록 된 이름 example.convertDirection 의 프로 시저가 없습니다. 의 프로 시저 이름 철자가 올바른지, 프로 시저가 올바르게 배포되었는지 확인하십시오.

누구일까요?

답변

1

프로 시저가 아닌 함수를 만들었습니다 (코드에 @UserFunction 참조).

call dbms.functions()에 나와 있으며 함수로 CALL 및 YIELD는 필요하지 않습니다. 다른 함수처럼 인라인으로 사용하십시오.

+0

도움 주셔서 감사합니다. 사실 내가 한 것은 사용자 기능이었습니다. –