日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Neo4J OGM与Quarkus

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Neo4J OGM与Quarkus 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在下面的視頻中,我演示了一個使用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

總結

以上是生活随笔為你收集整理的Neo4J OGM与Quarkus的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。