Upgrading from 2.x to 3.0.x: cannot find correct spring data version
adepase opened this issue · comments
OrientDB Version: 3.0.10
Java Version: "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11,
mixed mode)
OS: Windows 10 Home
Expected behavior
According to OrientDb official docs in http://orientdb.com/docs/3.0.x/apis-and-drivers/ OrientDb Spring Data is the Official Spring Data Plugin for both Graph and Document APIs But Graph API 2.6 are deprecated (http://orientdb.com/docs/3.0.x/java/Java-API.html ) and substituted by TinkerPop 3.0 Graph API. On https://github.com/orientechnologies/spring-data-orientdb/tree/3.0.x the readme says the version to use is 0.13, so it's expected that that is the last version and that you can use it.
Actual behavior
On https://search.maven.org/artifact/com.orientechnologies/spring-data-orientdb-parent/0.14/pom the last version is 0.14, updated last year:
The 0.13 version seems to be updated on 2016:
According to https://github.com/orientechnologies/spring-data-orientdb/tree/3.0.x the new version should be updated 4 months ago. So, what is the real version usable with 3.0.x? Can I update it using gradle/maven and similar? How can I upgrade?
Steps to reproduce
See above.
Yeah, the docs are quite outdated which is something I've already asked them to fix (and it would literally take them a few seconds to do it), but if you want to use OriendDB 3.0 with Spring Data, you should use the '0.14-3.0.5-SNAPSHOT'
and include https://oss.sonatype.org/content/groups/public
as a Maven repo. You can find the newest version of that snapshot at: https://oss.sonatype.org/content/groups/public/com/orientechnologies/spring-data-orientdb-object/
Well, thank you. I found it, but I'm using spring-boot-orientdb-autoconfigure and Gradle cannot find it.
I think it may be due to some sort of misconfiguration of the repository, because even from the search tool of oss.sonatype.org it cannot be found:
Dear all, do someone know from what repository the spring-boot-orientdb-autoconfigure for version 3.X is downloadable? I see it on github, but I cannot find a repository.
Thank you in advance
Ok, a lot of time passed. And I checked again. Probably last time I paid not so much attention, the solution is using the following configurations (in gradle version, for version 3.1.0):
[...]
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/groups/public/" }
}
[...]
compile ('com.orientechnologies:spring-boot-orientdb-autoconfigure:0.14-3.1.0-SNAPSHOT'){
exclude module: 'hibernate-jpa-2.0-api'
}
The exclude directive is for my own build, because I already imported that and compiling it again it can create issues for duplicates, you can omit it, if needed.
I hope this can save time to others, with reduced attention as me :)
I'm trying to get this up and running with the 0.14-3.1.0-SNAPSHOT version, but I get this error:
but I get this error message when starting the application:
`***************************
APPLICATION FAILED TO START
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.apache.tinkerpop.gremlin.orientdb.executor.OCommandGremlinExecutor.initCustomTransformer(OCommandGremlinExecutor.java:81)
The following method did not exist:
com.orientechnologies.orient.core.command.script.OScriptManager.getTransformer()Lcom/orientechnologies/orient/core/command/script/transformer/OScriptTransformer;
The method's class, com.orientechnologies.orient.core.command.script.OScriptManager, is available from the following locations:
jar:file:/home/xxx/.m2/repository/com/orientechnologies/orientdb-core/3.1.2/orientdb-core-3.1.2.jar!/com/orientechnologies/orient/core/command/script/OScriptManager.class
The class hierarchy was loaded from the following locations:
com.orientechnologies.orient.core.command.script.OScriptManager: file:/home/xxx/.m2/repository/com/orientechnologies/orientdb-core/3.1.2/orientdb-core-3.1.2.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of com.orientechnologies.orient.core.command.script.OScriptManager
`
Any ideas, what's up with that?
Edit:
Ok, I got that sorted out now, I was missing a dependency.
But now I run into the following problem:
As soon as I define a query in my class-specific OrientObjectRepository beyond the inherited queries I get this error message:
"you have defined query methods in the repository but do not have any query lookup strategy defined. the infrastructure apparently does not support query methods!"