java - @rid 东方数据库中的哪种数据类型?

标签 java spring orientdb

我尝试使用java从orientdb获取所有数据。 我的代码是

    public static ArrayList<dbentity.DoctorEntity> viewAllDoctor(){
    graph = factory.getTx();
    ArrayList<dbentity.DoctorEntity> al=new ArrayList<dbentity.DoctorEntity>();
    for (Vertex v : graph.getVerticesOfClass("DoctorA")) {
        System.out.println(v.getProperty("@rid"));
        dbentity.DoctorEntity disent=new DoctorEntity(v.getProperty("@rid"), v.getProperty("NAME"),v.getProperty("specialization"));
        al.add(disent);
    }
    graph.shutdown();
    return al;
    }

我想将 @rid 添加到 ArrayList 但它显示错误。我认为数据类型有问题 我的 DoctorEntity 类是。

public class DoctorEntity {
private String name;
private String specialization;
private String rid;

public DoctorEntity(Object rid, Object name,Object specialization){
    this.name=(String) name;
    this.specialization=(String) specialization;
    this.rid=(String) rid;
}

public String getName() {
    return name;
}

public String getSpecialization() {
    return specialization;
}
public String getRid() {
    return rid;
}}

错误显示为 异常:“java.lang.ClassCastException” 消息:“com.tinkerpop.blueprints.impls.orient.OrientVertex 无法转换为 java.lang.String”

最佳答案

您可以将 Vertex 转换为 OrientVertex 并调用 getIdentity().toString()。 请参阅here .

for (Vertex v : graph.getVerticesOfClass("DoctorA")) {
    OrientVertex vertex = (OrientVertex) v;
    dbentity.DoctorEntity disent = new DoctorEntity(vertex.getIdentity().toString(), v.getProperty("NAME"), v.getProperty("specialization"));
    al.add(disent);
}

关于java - @rid 东方数据库中的哪种数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738566/

相关文章:

java - 将组件的首选大小保持在 BorderLayout 的中心

java - 如何一一停止线程类的多个实例?

java - 如何在特定包中获取带有某些注释的类

orientdb - 从集群名称请求集群 ID

sql - Orientdb SQL 查询检查边缘属性

java - 在 JAVA 中创建动态类而不使用反射 API?

java - Hibernate HQL select 与 where order by 查询不同

java - 使用 ClassPathXmlApplicationContext 以编程方式创建 Bean 但无法获取 bean; Spring

java - Spring WebFlux WebClient - 如何解决 400 错误请求

list - OrientDB - 如何更新记录中的列表条目