Spring Data Graph 1.1.0 與 Neo4j 支援已發佈
親愛的 Spring 社群:
我們很高興宣佈 Spring Data Graph 專案的第二個版本 (1.1.0.RELEASE) 已推出,並支援 Neo4j!
在 2011 年 4 月首次公開發佈 Spring Data Graph 之後,我們主要關注使用者回饋。
透過圍繞工具的改進 文件 和升級的 AspectJ 版本,我們解決了使用者報告的許多 AspectJ 問題。 借助最新的 STS 和 Eclipse,以及希望借助 Idea11,可以開發沒有紅色波浪線的 Spring Data Graph 應用程式。 為了進一步簡化開發,我們還為 ant/ivy 提供了範例建置腳本和 gradle 的插件。
當然,我們也跟上了 Neo4j 的開發步伐,目前使用的是最新的穩定版本 Neo4j (1.4.1)。
在過去幾個月的 Neo4j 開發中,改進的查詢 (Cypher, Gremlin) 支援是重要方面之一。 因此,我們努力在所有層面都提供支援。 現在,可以從 Spring Data Graph Repositories、Neo4j-Template 以及動態欄位註解和透過引入的實體方法執行 Cypher 查詢。 Gremlin 腳本也是如此。 這種新的表達能力有什麼可能? 讓我們來看看。
例如,在一個 repository 中
public interface PersonRepository extends GraphRepository, NamedIndexRepository {
@Query("start team=(%team) match (team)-[:persons]->(member) return member")
Iterable findAllTeamMembers(@Param("team") Group team);
@Query(value = "g.v(team).out('persons')", type = QueryType.Gremlin)
Iterable findAllTeamMembersGremlin(@Param("team") Group team);
}
Neo4j Template API 進行了徹底的修改,從而產生了更少、更集中的方法。 先進的查詢結果處理功能(類型轉換、映射、單個結果、處理程序等)現在使用更流暢的 API 實現。 這種新的 API 適用於所有類型的查詢,無論是索引查找、圖遍歷、Cypher 查詢還是 Gremlin 腳本。
template.query("start n=(0) match n-->m return m", null).to(Node.class);
template.execute("g.v(0).out", null).to(Node.class);
template.lookup("relationship", "name", "rel1").to(String.class, new PropertyContainerNameConverter()).single();
template.traverse(referenceNode, traversalDescription).handle(new Handler<Path>() {
public void handle(Path value) {
final String name = (String) value.endNode().getProperty("name", "");
resultSet.add(name…