Idea创建HugeGraph属性报ExistedException
一、错误内容
java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy27.create(Unknown Source) at com.meiyijia.pd.flink.hugeGraph.SingleExample.main(SingleExample.java:26) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.baidu.hugegraph.structure.schema.BuilderProxy.invoke(BuilderProxy.java:56) ... 2 more Caused by: class com.baidu.hugegraph.exception.ExistedException: The property key 'name2' has existed at com.baidu.hugegraph.exception.ServerException.fromResponse(ServerException.java:47) at com.baidu.hugegraph.client.RestClient.checkStatus(RestClient.java:93) at com.baidu.hugegraph.rest.AbstractRestClient.post(AbstractRestClient.java:198) at com.baidu.hugegraph.rest.AbstractRestClient.post(AbstractRestClient.java:172) at com.baidu.hugegraph.api.schema.PropertyKeyAPI.create(PropertyKeyAPI.java:46) at com.baidu.hugegraph.driver.SchemaManager.addPropertyKey(SchemaManager.java:79) at com.baidu.hugegraph.structure.schema.PropertyKey$BuilderImpl.create(PropertyKey.java:142) at com.baidu.hugegraph.structure.schema.PropertyKey$BuilderImpl.create(PropertyKey.java:125) ... 7 more
二、错误场景
Idea中创建属性Key,若不存在则创建
public static void main(String[] args) throws IOException { HugeClient hugeClient = null; try { // If connect failed will throw a exception. hugeClient = HugeClient.builder("http://192.168.66.83:8080", "meta_hugegraph") .build(); SchemaManager schema = hugeClient.schema(); schema.propertyKey("name").asText().valueSet().ifNotExist().create(); }catch (Exception e){ e.printStackTrace(); }finally { hugeClient.close(); } }
三、解决
首先登录Hubble,连接图后,查看属性Key,发现name的基数是single,而我们创建是却指定的基数是set集合,就是使用了ifNotExist(),程序也还是会报错
解决:将set集合改为single即可,使二者类型一致
schema.propertyKey("name").asText().valueSingle().ifNotExist().create();