使用Scala在Play 2.x应用程序中使用Spring Data Neo4j

Rob*_*ois 5 scala neo4j playframework-2.0 spring-data-neo4j anormcypher

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

到目前为止,AnormCypher将Play应用程序与Neo4J实例连接起来,所有内容都按预期工作.

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

示例中的代码看起来非常干净,我想在项目中尝试它.

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

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

Eve*_*man 3

对于回答有些不完整,我深表歉意,但我想我应该插话一下。

我认为 scala 中有一些类似 ORM 的空间,我希望能够自动从结果流进行案例类转换(在 AnormCypher 中),但始终无法使其像.map()案例类构造函数一样高效内部(而且它不适用于内部案例类,以及其他一些注意事项)。我很乐意付出一些努力使其更像 Mongo 的 Salat,以便它具有更好的案例类转换支持。

我梦想着这样的语法:

scala> Cypher("RETURN "foo" as foo, "bar" as bar")()[MyCaseClass]
res0: Stream[MyCaseClass](...)
Run Code Online (Sandbox Code Playgroud)

无论如何,对于你的主要观点,不久前我看到 Cake Solutions 的某人弄清楚了如何让 Spring Data Neo4j 在 Scala 中工作: http://www.cakesolutions.net/teamblogs/2012/03/29/neo4j -spring-data-scala

这篇文章有点旧,但可能会帮助您入门,并让您了解它可能有些烦人。我发现 @annotation 语法在 scala 中不惯用。