Ich arbeite in einer XPages-Anwendung mit der OpenNTF Domino-API, um die Diagrammdatenmodellierungsfunktionen zu untersuchen. Als Beispiel habe ich den Teamroom genommen, der mit IBM Domino geliefert wird.Versuchen, IBM Notes-Daten in Graph-Datenbank zu migrieren
Ich habe eine Methode definiert, um Antworten Dokumente in die Grap db zu wandern, aber ich erhalte die Fehlermeldung: keine statische Verweis auf die nicht-statische Methode
Hier machen kann, was die Methode wie folgt aussieht:
private void migrateResponses(DFramedTransactionalGraph<DGraph> profilesGraph) {
try {
Database db = Factory.getSession().getCurrentDatabase();
View view = db.getView("responsesOnly");
DocumentCollection col = view.getAllDocuments();
System.out.println("number of docs found " + col.getCount());
for (Document response : col) {
System.out.println("form:" + response.getFormName());
System.out.println("id:" + response.getUniversalID());
org.openntf.domino.ext.Document parent = response.getParentDocument();
if (null == parent.getParentDocument()){
//has no parent document so this parent document is a MainTopic/Post
Post post = profilesGraph.addVertex(parent.getMetaversalID(), Post.class);
Response vertexResponse = profilesGraph.addVertex(response.getUniversalID(), Response.class);
vertexResponse.setSubject(response.getItemValueString("Subject"));
Post.addResponse(vertexResponse);
}
}
profilesGraph.commit();
} catch (Throwable t) {
XspOpenLogUtil.logError(t);
}
}
Der Fehler tritt in Zeile:
Post.addResponse(vertexResponse);
Hier ist, was mein Beitrag Klasse wie folgt aussieht:
package com.wordpress.quintessens.graph.teamroom;
import org.openntf.domino.graph2.annotations.AdjacencyUnique;
import org.openntf.domino.graph2.builtin.DVertexFrame;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Property;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
@TypeValue("post")
public interface Post extends DVertexFrame {
@Property("$$Key")
public String getKey();
@Property("subject")
public String getSubject();
@Property("subject")
public void setSubject(String n);
// real edges!
@AdjacencyUnique(label = "hasWritten", direction = Direction.OUT)
public Iterable<Profile> getAuthors();
@AdjacencyUnique(label = "hasReaction", direction = Direction.IN)
public void addResponse(Response response);
@AdjacencyUnique(label = "hasReaction", direction = Direction.IN)
public void removeResponse(Response response);
@AdjacencyUnique(label = "hasReaction", direction = Direction.IN)
public Iterable<Response> getResponses();
}
Haben Sie einen Vorschlag, wie ich meinen Code anpassen sollte, damit es funktioniert?
Versuchen 'Post' zu' Post' ändern. Es sieht so aus, als ob Sie sich auf die Klasse und nicht auf das Objekt beziehen. –