Ich versuche, get started mit Datomisca, aber die ersten Start Code führt zu einem NoSuchMethodError
.Versuchen, Schema mit Datomisca Ergebnisse in NoSuchMethodError
Hier ist ein kompakter Snippet, der das reproduziert.
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)
}
Die Ausnahme, die ich erhalten:
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)
Transaktionen Schema.txDataB
statt Schema.txDataA
funktioniert aber einwandfrei. Es scheint also, dass der Fehler etwas mit Datomiscas Attribute()
zu tun hat.
Was ist das Problem und wie behebt man das?