Yes it does. I want to use java only to import data into orientdb so i
changed my code:
@Override
public void openGraph(boolean transaction) {
if(transaction) {
this.graph = new OrientGraph(this.pathToOrientDB, "admin", "admin");
} else {
this.graph = new OrientGraphNoTx(this.pathToOrientDB, "admin",
"admin");
}
}
I now simply make to iterations over my file. first iteration i create all
my classes using OrientGraphNoTx. Second iteration i do the rest.
Thanks for the hint.
Am Mittwoch, 9. April 2014 09:28:07 UTC+2 schrieb [email protected]:
>
> Hi,
>
> Any changes to the database, as adding Vertex/Edge types, needs to be done
> outside the transaction.
>
> I'm inserting new records in a batch and to solve this, in that situation,
> I pre-iterate through the batch to check for new types, create them and
> then start a transaction to insert.
>
> Does that clarify anything?
>
> Regards,
> -Stefán
>
> On Wednesday, 9 April 2014 07:10:13 UTC, Marc Tigges wrote:
>>
>> Hallo,
>>
>> im getting a warning for each vertex typ i want to create:
>>
>> WARNING: Committing the active transaction to create vertex type
>> 'american_football' as subclass of 'V'. To avoid this behavior do it
>> outside the transaction
>>
>> My code looks like that at the moment:
>>
>> public class GraphOperationsDAO extends GraphOperations {
>> private long statementCounter = 0;
>> private long statementCounterKum = 0;
>> private String pathToOrientDB = null;
>> private OrientGraph graph = null;
>> public GraphOperationsDAO(String pathToOrientDB) {
>> this.pathToOrientDB = pathToOrientDB;
>> }
>> @Override
>> public void openGraph() {
>> this.graph = new OrientGraph(this.pathToOrientDB, "admin", "admin");
>> }
>>
>> @Override
>> public void commitGraph() {
>> if(this.graph != null) {
>> this.graph.commit();
>> }
>> }
>>
>> @Override
>> public void rollbackGraph() {
>> if(this.graph != null) {
>> this.graph.rollback();
>> }
>> }
>> @Override
>> public void closeGraph() {
>> if(this.graph != null) {
>> this.graph.commit();
>> this.graph.shutdown();
>> }
>> }
>> @Override
>> public void createVertexClass(String name, String parent) {
>> this.graph.createVertexType(name, parent);
>> this.inkrementStatementCounter();
>> }
>>
>> @Override
>> public void createVertex(String id, String className) {
>> Vertex newVertex = this.graph.addVertex("class:" + className);
>> newVertex.setProperty("ID", id);
>> this.inkrementStatementCounter();
>> }
>> @Override
>> public void createEdgeClass(String name, String parent) {
>> this.graph.createEdgeType(name, parent);
>> this.inkrementStatementCounter();
>> }
>>
>> @Override
>> public void createEdge(String edgeName, String outID, String outClass,
>> String inID, String inClass, String property) {
>> Vertex outVertex = null;
>> Vertex inVertex = null;
>> Edge edge = null;
>> for(Vertex vertex : this.graph.getVerticesOfClass(outClass)) {
>> if(vertex.getProperty("ID").equals(outID)) {
>> outVertex = vertex;
>> }
>> }
>> for(Vertex vertex : this.graph.getVerticesOfClass(inClass)) {
>> if(vertex.getProperty("ID").equals(inID)) {
>> inVertex = vertex;
>> }
>> }
>> edge = this.graph.addEdge(null, outVertex, inVertex, edgeName);
>> if(property != null) {
>> if(DataType.isInteger(property)) {
>> edge.setProperty("value", Integer.valueOf(property));
>> } else if(DataType.isDouble(property)) {
>> edge.setProperty("value", Double.valueOf(property));
>> } else if(DataType.isBoolean(property)) {
>> edge.setProperty("value", Boolean.valueOf(property));
>> } else if(DataType.isDate(property)) {
>> edge.setProperty("value", Date.valueOf(property));
>> } else {
>> edge.setProperty("value", property);
>> }
>> }
>> this.inkrementStatementCounter();
>> }
>> private void inkrementStatementCounter() {
>> if(this.statementCounter == 1000) {
>> this.commitGraph();
>> this.statementCounter = 0;
>> System.out.println("Parsed Lines: " + this.statementCounterKum);
>> }
>> this.statementCounter++;
>> this.statementCounterKum++;
>> }
>> }
>>
>> Can i just ignore that warning or do i have to change something? How can
>> i create my vertex types outside of the transaction?
>>
>
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.