在 OrientDB 的事务图中添加带有框架的类型化顶点

Add typed Vertex with Frames in transactional graph in OrientDB

早上好,

我正在尝试在事务模式下使用 orientDB 图,我不知道为什么,但我的所有顶点都没有使用我在创建时设置的代理类型 class 保存。

这是我的代码:

FramedGraphFactory framedFactory = new FramedGraphFactory();
OrientGraph instance = graphFactory.getTx();
FramedTransactionalGraph<OrientGraph> framedGraph=framedFactory.create(instance);

(GraphFactory是通过Spring注入的)

SocialUser social = getGraph().addVertex(UUID.randomUUID(), SocialUser.class);
    social.setSocialId(lr.getSocialId() + "_" + lr.getSocial());
    social.setCreationDate(new Date());
    social.setLastLopginDate(new Date());
    social.setUserInfo(lr.getInfo());
    OrientVertex socialV = (OrientVertex) social.asVertex();
    socialV.save();
    getGraph().commit();

(getGraph 是我 class 中的一个方法,即 return FramedTransactionalGraph)。

社交用户界面

public interface SocialUser extends VertexFrame {

@Property("socialId")
void setSocialId(String socialId);

@Property("socialId")
String getSocialId();

@Property("valid")
void setValid(boolean valid);

@Property("valid")
boolean getValid();

@Property("creationDate")
void setCreationDate(Date creationDate);

@Property("creationDate")
Date getCreationDate();

@Property("lastLoginDate")
void setLastLopginDate(Date lastLoginDate);

@Property("lastLoginDate")
Date getLastLoginDate();

@Property("status")
void setStatus(String status);

@Property("status")
String getStatus();

@Property("info")
public void setUserInfo(Map<String, String> userInfo);

@Property("info")
public Map<String, String> getUserInfo();

@Adjacency(label = "usersEdge", direction = Direction.BOTH)
PhysicUser getPhysicUser();

@Adjacency(label = "usersEdge", direction = Direction.BOTH)
void setPhysicUser(PhysicUser physicUser);

@Adjacency(label = "userUvi", direction = Direction.BOTH)
public Iterable<Uvis> getUvis();

@Adjacency(label = "userUvi", direction = Direction.BOTH)
public void setUvis(Uvis uvis);

@Property("uvi")
public String getCurrentUvi();

@Property("uvi")
public void setCurrentUvi(String uvi);

}

当我在数据库中检查保存的内容时,我所有的顶点都存储在 OrientDB 的 V class 中。

有人可以帮助我吗?

提前致谢

问候,Stefano

不幸的是,Frames 没有将 Java Class 绑定到 OrientDB class,因为 TinkerPop Blueprints 2.x.[=11= 中没有这个概念]

出于这个原因,OrientDB 使用 id 来读取 class 类型,因为它是传播到底层 Graph 实现的唯一参数。尝试做:

SocialUser social = getGraph().addVertex("class:SocialUser,"+UUID.randomUUID(), SocialUser.class);