5

我目前正在开发由Neo4j(v2.1.2,托管在GrapheneDB上)和使用Scala(2.11.1)(托管在Heroku上)的Play(v2.3)支持的 Web 服务。

到目前为止, AnormCypher将 Play 应用程序与 Neo4J 实例连接起来,一切都按预期工作。

然而,使用 AnormCypher 感觉不太对劲。我必须编写大量样板代码来将我从 AnormCypher 获得的结果转换为用于业务逻辑的 Scala 类。我更喜欢使用类似于Spring Data Neo4j的东西。

示例中的代码对我来说看起来很干净,我想在项目中尝试一下。

所有这些技术对我来说都是新的,所以我需要一些帮助:

  • 如何在 play 应用程序(build.sbt、plugin.sbt、...)中使用 Spring Data Neo4j?
  • 关于我没有使用整个 Spring 堆栈这一事实,我必须期待哪些困难?
  • 在 Scala 应用程序中集成基于 Java 的框架有哪些缺点?
4

1 回答 1

3

我为一个有点不完整的答案道歉,但我想我会插话。

我认为在 scala 中有一些类似 ORM 的东西的空间,我希望从结果流中自动进行案例类转换(在 AnormCypher 中),但从来没有能够像.map()案例类构造函数那样高效内部(而且它也不适用于内部案例类,以及其他一些警告)。我愿意付出一些努力使它更像 Mongo 的 Salat,以便它有更好的案例类转换支持。

我梦想着这样的语法:

scala> Cypher("RETURN "foo" as foo, "bar" as bar")()[MyCaseClass]
res0: Stream[MyCaseClass](...)

无论如何,就您的主要观点而言,不久前我看到有人在 cake Solutions 弄清楚如何让 spring 数据 neo4j 在 scala 中工作:http: //www.cakesolutions.net/teamblogs/2012/03/29/neo4j -spring-data-scala

这篇文章有点旧,但可能会让您入门,并让您了解它可能有点烦人。我发现 @annotation 语法在 scala 中是统一的。

于 2014-07-21T22:03:32.477 回答