ogm neo4j

在下面的视频中,我演示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例。

看一下GitHub上的示例项目 。

我为咖啡豆创建了一个示例域,其中包含我们可以查询和匹配的某些风味配置文件。 红色节点是来自某个国家/地区的咖啡豆,味道像某些口味。 豆类原产国也因某些风味而“闻名”。


在当前的1.4.2.Final版本中,Quarkus带有基本的Neo4J支持 ,但在撰写本文时还没有包括对OGM映射的支持。 但是,我们可以使用一个简单的生产者添加支持,该生产者公开Neo4J OGM SessionFactory

 import org.neo4j.ogm.config.Configuration;  import org.neo4j.ogm.session.SessionFactory;  ...  @ApplicationScoped  public class SessionFactoryProducer { public static final String PACKAGE = "com.sebastian_daschner.coffee.entity" ; @ConfigProperty (name = "quarkus.neo4j.uri" ) String databaseUri; @ConfigProperty (name = "quarkus.neo4j.authentication.username" ) String username; @ConfigProperty (name = "quarkus.neo4j.authentication.password" ) String password; @Produces SessionFactory produceSessionFactory() { Configuration neoConfig = new Configuration.Builder() .uri(databaseUri) .credentials(username, password) .useNativeTypes() .build(); return new SessionFactory(neoConfig, PACKAGE); } void disposeSessionFactory( @Disposes SessionFactory sessionFactory) { sessionFactory.close(); }  } 

现在,我们可以将SessionFactory注入到我们的bean中,并使用它来查询图形数据库:

 import org.neo4j.ogm.session.*;  ...  @ApplicationScoped  public class CoffeeBeans { @Inject SessionFactory sessionFactory; public List<CoffeeBean> getCoffeeBeans() { Session session = sessionFactory.openSession(); return new ArrayList<>(session.loadAll(CoffeeBean. class , new SortOrder( "name" ), 1 )); } public List<CoffeeBean> getCoffeeBeansSpecificFlavor(String flavor) { Session session = sessionFactory.openSession(); Iterable<CoffeeBean> result = session.query(CoffeeBean. class , "MATCH (b:CoffeeBean)-[:TASTES]->(:Flavor {description: $flavor})\n" + "MATCH (b)-[isFrom:IS_FROM]->(country)\n" + "MATCH (b)-[tastes:TASTES]->(flavor)\n" + "RETURN b, collect(isFrom), collect(country)," + " collect(tastes), collect(flavor)\n" + "ORDER by b.name;" , Map.of( "flavor" , flavor)); return resultList(result); } ...  } 

我的示例图如下所示,其中CoffeeBean对象是通过Neo4J OGM映射的:

 import org.neo4j.ogm.annotation.*;  ...  @NodeEntity  public class CoffeeBean { @Id public String name; @Relationship ( "IS_FROM" ) public Set<Origin> origins = new HashSet<>(); @Property public Roast roast; @Relationship ( "TASTES" @Relationship "TASTES" ) public Set<FlavorProfile> flavorProfiles = new HashSet<>(); ...  } 

观看视频,并查看GitHub上的项目以获取完整图片。

玩得开心探索您的图表! 作为进一步的练习,您可以编写查询来匹配具有某种风味的咖啡豆作为其“主要”风味(百分比最高的咖啡豆)或具有相似风味特征的咖啡豆等。

翻译自: https://www.javacodegeeks.com/2020/05/neo4j-ogm-with-quarkus.html

ogm neo4j

ogm neo4j_Neo4J OGM与Quarkus相关推荐

  1. ogm session_Hibernate OGM:降低进入NoSQL的障碍

    ogm session 本月初,公众首次看到了一个面向NoSQL的全新Hibernate项目: Hibernate Object Grid Mapping(OGM).该项目旨在提供将数据存储到NoSQ ...

  2. 数据库 ogm_带有Hibernate OGM的NoSQL –第二部分:查询数据

    数据库 ogm Hibernate OGM的第一个最终版本发布于 1月底,团队一直在忙于制作一系列教程式博客,使您有机会轻松地从Hibernate OGM重新开始. 第一部分是关于设置和保留您的第一个 ...

  3. neo4j ogm_带有Hibernate OGM的NoSQL –第一部分:持久化您的第一个实体

    neo4j ogm Hibernate OGM的第一个最终版本已经发布,团队从发布狂潮中恢复了一些. 因此,他们考虑开设一系列教程风格的博客,使您有机会轻松地从Hibernate OGM重新开始. 感 ...

  4. python去掉列表的括号和逗号_在每行之后显示没有逗号,括号等的python 2d...

    我正在尝试显示没有逗号,括号等的python 2D列表,并且我希望在列表的每个"行"结束后显示一个新行. 这是我尝试这样做的: ogm = repr(ogm).replace(', ...

  5. 15个nosql数据库

    1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...

  6. Neo4J OGM与Quarkus

    在下面的视频中,我演示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例. 看一下GitHub上的示例项目 . 我为咖啡豆创建了一个示例域,其中包含我们可以查询和匹配的某些风味 ...

  7. neo4j安装_Neo4J OGM与Quarkus

    neo4j安装 在下面的视频中,我展示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例. 看一下GitHub上的示例项目. 我为咖啡豆创建了一个示例域,其中包含我们可以查询和 ...

  8. ogm session_带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序

    ogm session 欢迎回到我们的教程系列"带有Hibernate OGM的NoSQL"! 感谢Gunnar Morling( @gunnarmorling )创建了本教程. ...

  9. ogm session_带有Hibernate OGM的NoSQL –第一部分:持久化您的第一个实体

    ogm session Hibernate OGM的第一个最终版本已经发布 ,团队从发布狂潮中恢复了一些. 因此,他们考虑开设一系列教程风格的博客,使您有机会轻松地从Hibernate OGM重新开始 ...

最新文章

  1. Python速度提升
  2. Windows10上使用VS2017编译OpenCV3.4.2+OpenCV_Contrib3.4.2+Python3.6.2操作步骤
  3. html判断对错,Html翻转校园试题
  4. 神经网络 Log-Sum-Exp
  5. 去年3545款恶意App遭下架
  6. 现代操作系统: 第五章 输入/输出
  7. 笔记-项目质量管理-七种基本质量工具
  8. Linux是不是共享软件,linux – 是否有可能在应用程序之间共享Cuda上下文?
  9. 工科数学分析无穷级数总结
  10. java基础英语---第一天
  11. 手工做迷宫_好玩易上手的自然探索实验,春天必备,宅家就能带孩子做起来!...
  12. 一到软考网络工程师试题
  13. 力扣题目——350. 两个数组的交集 II
  14. Python while循环及用法详解
  15. 批量下载npm离线安装包
  16. 计算机装逼技巧,【干货来啦】电脑装逼技巧,让你一秒变大神!
  17. 团队任务3每日立会(2018-10-26)
  18. 龙之谷服务器更新文件,全区全服 维护结束 更新至Ver.417
  19. 期末项目——同源药膳堂
  20. linux网络测速qerf,www.n5fe.com

热门文章

  1. 2020牛客国庆集训派对day1 Zeldain Garden
  2. 牛客网 【每日一题】5月9日 过河
  3. Codeforces Round #762 (Div. 3)
  4. [luogu 4292][bzoj 1758][WC2010] 重建计划(点分治 + dp + 单调队列优化 + 启发式合并)
  5. 洛谷P1173:[NOI2016] 网格(tarjan、离散化)
  6. 51nod1766-树上的最远点对【结论,线段树】
  7. CF1598E-Staircases【计数】
  8. 2021“MINIEYE杯”中国大学生算法设计超级联赛(8)(1002,1004,1006,1009)
  9. hdu5909-Tree Cutting【FWT】
  10. YbtOJ#853-平面标记【整体二分,凸壳】