J'essaie de get started avec Datomisca, mais le code de démarrage se traduit par un NoSuchMethodError
.Essayer d'ajouter un schéma avec Datomisca entraîne NoSuchMethodError
Voici un extrait compact qui reproduit cela.
package tw.txstream.flinktest
import scala.concurrent.ExecutionContext.Implicits.global
import datomisca._
object DatomicTest {
def main(args: Array[String]){
val uri = "datomic:dev://localhost:4334/test"
// ensure clean DB
println("Deleted DB? " + Datomic.deleteDatabase(uri))
println("Created DB? " + Datomic.createDatabase(uri))
implicit val conn = Datomic.connect(uri)
Datomic.transact(Schema.txDataA) map { tx =>
println("Transacted")
}
}
}
object Schema {
object ns {
val ns1 = Namespace("ns1")
}
val attr1 = Attribute(
ns.ns1/"attr1",
SchemaType.string,
Cardinality.one
).withDoc("attr1")
val ident1 = AddIdent(ns.ns1/"ident1")
val txDataA: Seq[TxData] = Seq(attr1)
val txDataB: Seq[TxData] = Seq(ident1)
}
L'exception je reçois:
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
at datomisca.Attribute.toAddOps$lzycompute(Attribute.scala:80)
at datomisca.Attribute.toAddOps(Attribute.scala:78)
at datomisca.Attribute.toTxData(Attribute.scala:98)
at datomisca.Connection$$anonfun$transact$extension$1.apply(Connection.scala:152)
at datomisca.Connection$$anonfun$transact$extension$1.apply(Connection.scala:151)
at scala.collection.immutable.List.foreach(List.scala:318)
at datomisca.Connection$.transact$extension(Connection.scala:151)
at datomisca.TransactOps$class.transact(TransactOps.scala:53)
at datomisca.Datomic$.transact(Datomic.scala:31)
Schema.txDataB
au lieu de transiger Schema.txDataA
fonctionne cependant très bien. Donc, il semble que l'erreur a quelque chose à voir avec Attribute()
de Datomisca.
Quel est le problème et comment y remédier?