immobilienscout24 / play-orientdb-client

A play client to use the orient db http api.

GitHub

Orient Play Client Build Status Maven Central

A play client to use the orient db http api.

Create client

val config = OrientClientConfig(
    url = getConfigProperty("orientdb.url"),
    database = getConfigProperty("orientdb.database"),
    userName = getConfigProperty("orientdb.username"),
    password = getConfigProperty("orientdb.password")
)
// the actor system is provided by play
new OrientDbHttpClient(config)(actorSystem)

#Query

Gremlin

import de.is24.play.orientdb.client.OrientDbHttpClient
import de.is24.play.orientdb.OrientStringContext._

val name = "Hugo"
val query = gremlin"""g.V("name", $name)"""

orientDbHttpClient.select[Person](query) // requires a Json.reads

##SQL

import de.is24.play.orientdb.client.OrientDbHttpClient
import de.is24.play.orientdb.OrientStringContext._

val name = "Hugo"
val query = sql"select from Person WHERE name = $name"

orientDbHttpClient.select[Person](query) // requires a Json.reads

##Batch

import de.is24.play.orientdb.Operation._

val createLockTableBatch = Seq(
      sql"Create class SchemaLock",
      sql"Create property SchemaLock.id String",
      sql"Create index idIndex on SchemaLock (id) UNIQUE",
      sql"Insert into SchemaLock set id = $lockId, lockedBy = null"
    ).asBatch()

createLockTableBatch.execute

##Transaction

Seq("INSERT INTO ...", "UPDATE ...").transactionally.execute

##Functions

orientClient.callFunction("testFunction")
orientClient.callFunction("testFunction", Map[String, Any]("a" -> "42", "b" -> 42, "c" -> false))

#Release

sbt> release with-defaults