Spring Data Neo4j в приложении Play 2.x с использованием Scala
В настоящее время я работаю над веб-службой, поддерживаемой Neo4j (v2.1.2, размещенной на GrapheneDB) и Play (v2.3), использующей Scala (2.11.1) (размещенной на Heroku).
До сих пор AnormCypher связывает приложение Play с экземпляром Neo4J, и все работает как положено.
Однако использование AnormCypher не совсем подходит. Мне нужно написать много кода, чтобы преобразовать результаты, полученные от AnormCypher, в классы Scala, которые используются для бизнес-логики. Я бы предпочел использовать что-то похожее на Spring Data Neo4j.
Код в примерах выглядит очень чисто для меня, и я хочу попробовать его в проекте.
Все эти технологии являются новыми для меня, поэтому мне нужна помощь:
- Как я могу использовать Spring Data Neo4j в игровом приложении (build.sbt, plugin.sbt, ...)?
- Какие трудности мне следует ожидать в связи с тем, что я не использую весь стек Spring?
- Какие недостатки он должен интегрировать на основе Java в Scala-приложении?
1 ответ
Я прошу прощения за несколько неполный ответ, но я думал, что я вмешался.
Я думаю, что в scala есть место для ORM-подобных вещей, и я надеялся сделать автоматическое преобразование класса case из потока результатов (в AnormCypher), но так и не смог сделать его таким же производительным, как .map()
с конструктором класса case внутри (а также он не работал для внутренних классов case и некоторых других предостережений). Я хотел бы приложить некоторые усилия, чтобы сделать его более похожим на Монго Салат, чтобы он имел лучшую поддержку преобразования класса дел.
Я мечтал о синтаксисе, как это:
scala> Cypher("RETURN "foo" as foo, "bar" as bar")()[MyCaseClass]
res0: Stream[MyCaseClass](...)
В любом случае, к вашему главному замечанию, некоторое время назад я видел, как кто-то из разработчиков тортов выяснил, как заставить работать весенние данные neo4j в scala: http://www.cakesolutions.net/teamblogs/2012/03/29/neo4j-spring-data-scala
Пост немного устарел, но может помочь вам начать и дать представление о том, как он может быть несколько раздражающим. Я обнаружил, что синтаксис @annotation недопустим в scala.