ogm neo4j_Neo4J OGM与Quarkus
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相关推荐
- ogm session_Hibernate OGM:降低进入NoSQL的障碍
ogm session 本月初,公众首次看到了一个面向NoSQL的全新Hibernate项目: Hibernate Object Grid Mapping(OGM).该项目旨在提供将数据存储到NoSQ ...
- 数据库 ogm_带有Hibernate OGM的NoSQL –第二部分:查询数据
数据库 ogm Hibernate OGM的第一个最终版本发布于 1月底,团队一直在忙于制作一系列教程式博客,使您有机会轻松地从Hibernate OGM重新开始. 第一部分是关于设置和保留您的第一个 ...
- neo4j ogm_带有Hibernate OGM的NoSQL –第一部分:持久化您的第一个实体
neo4j ogm Hibernate OGM的第一个最终版本已经发布,团队从发布狂潮中恢复了一些. 因此,他们考虑开设一系列教程风格的博客,使您有机会轻松地从Hibernate OGM重新开始. 感 ...
- python去掉列表的括号和逗号_在每行之后显示没有逗号,括号等的python 2d...
我正在尝试显示没有逗号,括号等的python 2D列表,并且我希望在列表的每个"行"结束后显示一个新行. 这是我尝试这样做的: ogm = repr(ogm).replace(', ...
- 15个nosql数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- Neo4J OGM与Quarkus
在下面的视频中,我演示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例. 看一下GitHub上的示例项目 . 我为咖啡豆创建了一个示例域,其中包含我们可以查询和匹配的某些风味 ...
- neo4j安装_Neo4J OGM与Quarkus
neo4j安装 在下面的视频中,我展示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例. 看一下GitHub上的示例项目. 我为咖啡豆创建了一个示例域,其中包含我们可以查询和 ...
- ogm session_带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序
ogm session 欢迎回到我们的教程系列"带有Hibernate OGM的NoSQL"! 感谢Gunnar Morling( @gunnarmorling )创建了本教程. ...
- ogm session_带有Hibernate OGM的NoSQL –第一部分:持久化您的第一个实体
ogm session Hibernate OGM的第一个最终版本已经发布 ,团队从发布狂潮中恢复了一些. 因此,他们考虑开设一系列教程风格的博客,使您有机会轻松地从Hibernate OGM重新开始 ...
最新文章
- Python速度提升
- Windows10上使用VS2017编译OpenCV3.4.2+OpenCV_Contrib3.4.2+Python3.6.2操作步骤
- html判断对错,Html翻转校园试题
- 神经网络 Log-Sum-Exp
- 去年3545款恶意App遭下架
- 现代操作系统: 第五章 输入/输出
- 笔记-项目质量管理-七种基本质量工具
- Linux是不是共享软件,linux – 是否有可能在应用程序之间共享Cuda上下文?
- 工科数学分析无穷级数总结
- java基础英语---第一天
- 手工做迷宫_好玩易上手的自然探索实验,春天必备,宅家就能带孩子做起来!...
- 一到软考网络工程师试题
- 力扣题目——350. 两个数组的交集 II
- Python while循环及用法详解
- 批量下载npm离线安装包
- 计算机装逼技巧,【干货来啦】电脑装逼技巧,让你一秒变大神!
- 团队任务3每日立会(2018-10-26)
- 龙之谷服务器更新文件,全区全服 维护结束 更新至Ver.417
- 期末项目——同源药膳堂
- linux网络测速qerf,www.n5fe.com
热门文章
- 2020牛客国庆集训派对day1 	Zeldain Garden
- 牛客网 【每日一题】5月9日 过河
- Codeforces Round #762 (Div. 3)
- [luogu 4292][bzoj 1758][WC2010] 重建计划(点分治 + dp + 单调队列优化 + 启发式合并)
- 洛谷P1173:[NOI2016] 网格(tarjan、离散化)
- 51nod1766-树上的最远点对【结论,线段树】
- CF1598E-Staircases【计数】
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(8)(1002,1004,1006,1009)
- hdu5909-Tree Cutting【FWT】
- YbtOJ#853-平面标记【整体二分,凸壳】