帶有Quarkus的Neo4J OGM(影片)-Sebastian Daschner
該文演示了一個使用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(); } } |
現在我們可以將注入到SessionFactorybean中,並使用它來查詢圖資料庫:
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") public Set<FlavorProfile> flavorProfiles = new HashSet<>(); ... } |
點選標題見原文影片 |
相關文章
- 帶有Quarkus的Neo4J OGM(視訊)-Sebastian DaschnerAST
- 能夠大幅度提升敲程式碼速度:IntelliJ Idea的Live模板分享 - Sebastian DaschnerIntelliJIdeaAST
- Neo4j的Perl語言OGM對映工具——REST::Neo4pREST
- 沃達豐希臘公司用Quarkus代替Spring Boot - quarkusSpring Boot
- win10怎麼錄螢幕影片帶聲音 錄製影片沒有聲音的解決方法Win10
- Quarkus vs. SpringBoot - RedditSpring Boot
- win10自帶影片播放器在哪_怎麼開啟win10自帶的影片播放器Win10播放器
- TSM儲存池中沒有可用磁帶,帶庫中也沒有Scratch 狀態的磁帶。
- windows下體驗quarkus原生編譯打包Windows編譯
- 《精通Neo4j》前言
- Neo4j簡介
- neo4j匯入
- 革新影片質量,Topaz Video AI為Mac/Win帶來卓越的影片增強工具!IDEAIMac
- 帶有Apache Spark的Lambda架構ApacheSpark架構
- 帶有Python的音訊處理(附帶原始碼)Python音訊原始碼
- NoSQL 新貴之崛起的 Neo4jSQL
- Quarkus中基於角色的許可權訪問控制教程
- 所有短影片平臺有哪些?有什麼上熱門的技巧?
- 影片直播原始碼,去掉Button自帶邊框原始碼
- win10 自帶播放器有歷史記錄嗎_windows10自帶的影片播放器怎麼檢視歷史記錄Win10播放器Windows
- Neo4j資料庫資料庫
- 擴充套件Neo4j套件
- neo4j docoker安裝
- mysqlbackup 重建帶有gtid特性的slaveMySql
- 帶有吸附效果的RecyclerView裝飾器View
- SVG 帶有過渡效果的按鈕SVG
- 帶有LOB欄位的表遷移
- 雲原生時代高效能Java框架—Quarkus(一)Java框架
- 雲原生時代高效能Java框架—Quarkus(二)Java框架
- quarkus依賴注入之八:裝飾器(Decorator)依賴注入
- Quarkus和MongoDB微服務簡單案例原始碼MongoDB微服務原始碼
- php的ror類似框架, 有精美的影片展示PHP框架
- 短影片播放量高的有什麼型別?新媒體短影片運營型別
- 直播帶貨app原始碼,獲取直播影片的第一幀APP原始碼
- 淺談影片直播帶貨app開發的相關細則APP
- 用Quarkus實現乾淨清晰的Clean架構 - Sourced Blog架構
- Kettle之Neo4j外掛
- TomEE、Spring Boot與Quarkus比較 - BaptistaSpring BootAPT