Introducing Spring-Data-Gremlin

1,925 views
Skip to first unread message

Graham Webber

unread,
Jul 24, 2015, 12:47:38 PM7/24/15
to Gremlin-users
Hi, I just pushed a Spring-Data-Gremlin module bringing Spring-Data and Gremlin together in all their glory. Please have a look and let me know if you think it is useful.

Cheers,
Graham

Features

  • All the great features of Spring Data
  • Support for OrientDB and TitanDB out of the box
  • Schema creation in supported databases
  • Support to build repositories based on Spring and JPA.
  • Pagination support
  • Unique, non-unique and spatial indices supported
  • Support for Gremlin query language
  • Support for native queries (Eg. OrientDB SQL)
  • JavaConfig based repository configuration by introducing @EnableGremlinRepositories
  • Mapped and composite query result objects

Stephen Mallette

unread,
Jul 24, 2015, 1:04:48 PM7/24/15
to Gremlin-users
Hi Graham - I'd already expressed some thanks for your contribution in some tweets we exchanged so i'll just say thanks for announcing your project here as well.  Please let us know how TP3 support comes along when you get into it.




--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/306eaf15-c0f6-4f9e-b112-25ab74569802%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

smai...@cogniance.com

unread,
Sep 21, 2015, 1:08:35 PM9/21/15
to Gremlin-users, gjrw...@gmail.com
How can I use it?
Can you provide some pom example?

Graham Webber

unread,
Sep 22, 2015, 12:42:57 AM9/22/15
to Gremlin-users
I have uploaded a snapshot build to sonatype which is now available for use. I also updated the getting started section on Github with some examples.

Thanks,
Graham

Luc Bartkowski

unread,
Nov 25, 2015, 7:33:08 AM11/25/15
to Gremlin-users
Hi Graham,

I am currently defining a software architecture for a SPA application based upon TitanDB and Cassandra.
Since I am not an experienced developer I was looking for opinionated Spring configurations and a generator for boilerplate code. I selected JHipster for this purpose.
JHipster is based upon Yeoman, Maven and Spring Boot. I was giving thought how to integrate Gremlin in this software stack to access and traverse my graph database since the official Spring Data sites doesn't mention a Gremlin module yet. But thanks to Google search I found your module. I will give it a try and hopefully it helps to accomplish my objectives.

Thanks for the work.

Greetings,
Luc

Op vrijdag 24 juli 2015 18:47:38 UTC+2 schreef Graham Webber:

Graham Webber

unread,
Nov 26, 2015, 9:47:06 PM11/26/15
to Gremlin-users
Hi Luc, great to hear. Feel free to fork the repository and send any merge requests you think would benefit.

Cheers,
Graham

--
You received this message because you are subscribed to a topic in the Google Groups "Gremlin-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gremlin-users/SglMJFjdwAs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/c09bb4d9-a968-48da-ba55-b5b4cc7fe4c6%40googlegroups.com.

nightrise

unread,
Nov 28, 2015, 5:14:48 AM11/28/15
to Gremlin-users
Hey Graham,

This looks pretty great. I'm not familiar with Spring Data, but is this designed to be an alternative to setting up models using Frames? Does the gremlin query functionality work similarly to the GremlinGroovy module for Frames?

I'm currently using Tinkerpop 2.6.0 with OrientDB, and this project seems like it could be a great fit. Would be wonderful to have some more info for relative newcomers like myself!

Luc Bartkowski

unread,
Dec 18, 2015, 12:10:36 PM12/18/15
to Gremlin-users
Hi Graham,

Could you elaborate about the vision behind the Spring-Data-Gremlin implementation?

The reason for my question is:
To my opinion the strength of a graph database is the possibility to link any type of vertex e.g. entity to any other type of vertex using any type of edge e.g. relationship.
My question is how to preserve the flexibility of a graph database using Spring-Data-Gremlin.

To give an example: suppose I want to implement an application that offers
  • a graph database with a richness equivalent to the graph database of Facebook with vertices such as users, employers, music bands, movies, etc. and edges such as friends, likes, worked_at, and studied_at.
  • the possibility to query this graph like Facebook is offering with their Facebook Graph Search functionality. Example: give me a list of all users that work at a employer and who like a music band and live in a specific country. But any other query should also be possible such as "give me a list of friends of people that work at an employer and studied_at the same college. Etc, etc, any possible query that one could think of. 
It appears to me that I if I would use Spring-Data-Gremlin I am forced to model my graph database, including all possible vertex and edge types in advanced and that I must define all possible queries that the application users could be using as collections. Without Spring Data and your Spring-Data-Gremlin implementation I guess I would be using GremlinPipeline like explained here. This latter approach might add complexity to my source code to access/crud/query my graph database but then I have maximum flexibility regarding the Gremlin query I want to compile and use.

How would you implement such application using Spring-Data-Gremlin?

Thanks and greetings,
Luc


Op vrijdag 27 november 2015 03:47:06 UTC+1 schreef Graham Webber:

Graham Webber

unread,
Dec 24, 2015, 10:43:40 PM12/24/15
to Gremlin-users
Hi Luc, the vision behind spring-data-gremlin is to bring all the benefits and features of spring-data to any database implementing Tinkerpop (Gremlin). If you want to know the vision and purpose of spring-data then there are plenty of resources out there to find out, so I wont go into too much detail there. 

Should you use spring-data-gremlin for your example application? Yes. It is a very flexible framework which does not lock you into anything:
- You can use a number of annotation libraries (JPA, Neo4j or the custom set)
- There are implementation for OrientDB and TitanDB
- The schema is created for you automatically if needed

Also, the framework will work along side any other data access solution. ie. You could use spring-data-gremlin for your standard set of data access features (CRUD, default data access), then build your super wizzbang graph search function next to it or on top of it. The majority of spring-data-gremlin is just annotating your existing model and adding the required configuration code. If you want to scrap it, just remove your annotations. Of course you will then have to code all the queries yourself :)

If you are after any other features or database implementations I could always use some help as this is just a pet project for now.

Cheers,
Graham


Nelson

unread,
Aug 23, 2017, 11:13:50 PM8/23/17
to Gremlin-users
Hi Graham, this looks awesome!  

Are there plans to write an updated Spring-Data-Gremlin module that is compatible with Tinkerpop 3.2.5?  Will we be able to use it with JanusGraph - the linux foundation fork of Titan? 

Nelson  

pr...@flux.io

unread,
Dec 7, 2017, 5:55:11 PM12/7/17
to Gremlin-users
Hi Graham - Is there an update to support JanusGraph with TinkerPop 3?.

Thanks,
Prem

akshayg...@gmail.com

unread,
Feb 22, 2019, 12:45:00 PM2/22/19
to Gremlin-users

Hi Graham,

Your contribution to Spring Data Gremlin is very useful.
We are using Gremlin our current project with Azure Cosmos DB.

I had one question, does Gremlin also support transitive persistence.
I mean , If there are 2 classes  Person and Car
Inside Person i have List<Car> with relationship as "OWNS"

then if i populate values in Person, and save it will it save   Person, OWNS and Car.
I had this question because currently that is not happening , we need to save Person, OWNS and Car separately.

Just wanted to understand, if this is an issue with Azure Cosmos, or are you looking at transitive persistence in Spring-data-gremlin in future

Asha Anandhi

unread,
May 25, 2020, 4:37:15 AM5/25/20
to Gremlin-users
Hi Graham,

Is there any plan to include indexing for multiple properties?

Thanks,
Asha Sekar
Reply all
Reply to author
Forward
0 new messages