帶有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
- Quarkus
- 帶有反相效果的影片可以批次剪輯嗎?
- 沃達豐希臘公司用Quarkus代替Spring Boot - quarkusSpring Boot
- Quarkus vs. SpringBoot - RedditSpring Boot
- win10怎麼錄螢幕影片帶聲音 錄製影片沒有聲音的解決方法Win10
- win10自帶影片播放器在哪_怎麼開啟win10自帶的影片播放器Win10播放器
- TomEE、Spring Boot與Quarkus比較 - BaptistaSpring BootAPT
- Neo4j簡介
- neo4j匯入
- 《精通Neo4j》前言
- 將SpringBoot PetClinic REST遷移到Quarkus的開源專案Spring BootREST
- 革新影片質量,Topaz Video AI為Mac/Win帶來卓越的影片增強工具!IDEAIMac
- 帶有Python的音訊處理(附帶原始碼)Python音訊原始碼
- NoSQL 新貴之崛起的 Neo4jSQL
- windows下體驗quarkus原生編譯打包Windows編譯
- Neo4j資料庫資料庫
- neo4j docoker安裝
- 帶有Apache Spark的Lambda架構ApacheSpark架構
- Android帶有粘性頭部的ScrollViewAndroidView
- 短影片本地生活帶你走向致富之路!
- Quarkus中基於角色的許可權訪問控制教程
- 用Quarkus實現乾淨清晰的Clean架構 - Sourced Blog架構
- 影片號怎麼賺錢?影片號有什麼功能?
- quarkus依賴注入之八:裝飾器(Decorator)依賴注入
- Quarkus入門:構建PetClinic REST API - Rafał BorowiecRESTAPI
- Quarkus和MongoDB微服務簡單案例原始碼MongoDB微服務原始碼
- 帶有下取整的求和的極限
- win10 自帶播放器有歷史記錄嗎_windows10自帶的影片播放器怎麼檢視歷史記錄Win10播放器Windows
- Python 傳送帶有附件的郵件Python
- sql server 帶有OUTPUT的INSERT,DELETE,UPDATESQLServerdelete
- 註冊帶有Annotations標記的SchemaOL
- Kettle之Neo4j外掛
- 一文帶你走進得物影片
- 影片直播原始碼,去掉Button自帶邊框原始碼
- 所有短影片平臺有哪些?有什麼上熱門的技巧?
- 直播帶貨app原始碼,獲取直播影片的第一幀APP原始碼