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

时间:2014-07-21 20:07:20

标签: scala neo4j playframework-2.0 spring-data-neo4j anormcypher

我目前正在使用Neo4j(2.11)处理由GrapheneDB(v2.1.2,托管在Play)和Scala(v2.3)支持的网络服务.1)(托管于Heroku)。

直到现在AnormCypher将Play应用程序与Neo4J实例连接起来,所有内容都按预期工作。

然而,使用AnormCypher并不是很正确。我必须编写很多样板代码来将我从AnormCypher获得的结果转换为用于业务逻辑的Scala类。我更喜欢使用与Spring Data Neo4j类似的东西。

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

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

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

1 个答案:

答案 0 :(得分:3)

我为一个有些不完整的答案道歉,但我以为我会加入。

我认为在scala中有一些类似于ORM的东西的空间,我希望自动(在AnormCypher中)从结果流中进行案例类转换,但是从来没有能够像性能为.map(),内部有一个case类构造函数(并且它不适用于内部案例类,还有一些其他注意事项)。我很想付出一些努力让它更像Mongo的Salat,所以它有更好的案例类转换支持。

我梦想着这样的语法:

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

无论如何,对于你的要点,不久前我看到有人在蛋糕解决方案中弄清楚如何让sco中的spring数据neo4j工作: http://www.cakesolutions.net/teamblogs/2012/03/29/neo4j-spring-data-scala

帖子有点旧但可能会让你开始,并让你知道它有多烦人。我发现@annotation语法在scala中是单一的。