帶有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
- 視訊教程-搭建帶有CDN加速的免費圖床圖床
- win10怎麼錄螢幕視訊帶聲音 錄製視訊沒有聲音的解決方法Win10
- 帶有Python的音訊處理(附帶原始碼)Python音訊原始碼
- 短視訊開發app,自定義帶進度條的視訊播放按鈕APP
- 短視訊帶貨原始碼,觀看視訊時雙擊放大原始碼
- 直播短視訊原始碼短視訊APP短視訊帶貨系統多商戶直播原始碼APP
- 帶你用AVPlayer實現音訊和視訊播放音訊
- 點選彈出帶有遮罩的視窗效果遮罩
- 沃達豐希臘公司用Quarkus代替Spring Boot - quarkusSpring Boot
- win10自帶視訊播放器在哪_怎麼開啟win10自帶的視訊播放器Win10播放器
- 視訊會議的實現方式有哪些?
- jQuery彈出帶有遮罩視窗效果jQuery遮罩
- 亞馬遜的主圖視訊/描述視訊有辦法同採集下來嗎?亞馬遜
- win10 自帶播放器有歷史記錄嗎_windows10自帶的視訊播放器怎麼檢視歷史記錄Win10播放器Windows
- Python視訊教程哪裡有Python
- 短視訊APP開發帶飛你的創業夢APP創業
- 短視訊程式開發,RecyclerView自帶的滾動條View
- 有新手批量調整視訊尺寸的方法嗎?
- 帶有視覺滾動差的選單側滑欄視覺
- 騰訊又出短視訊小程式“看一看短視訊”。短視訊原始碼有巨大潛力?原始碼
- 抖音視訊剪輯工具有哪些?有沒有教程?
- 短視訊帶貨系統,設定透明背景
- 視訊轉GIF軟體有什麼
- 視訊合併軟體有什麼,怎麼合併多個視訊
- 直播商城系統APP帶貨系統短視訊帶貨系統APP
- 開發有新意的短視訊,你就是榮耀王者
- 有批量虛化視訊邊框背景的方法嗎?
- 哪裡有好的Python視訊教程推薦Python
- 有什麼方法能夠將原視訊中的音訊替換?音訊
- 帶有半透明遮罩層可關閉視窗遮罩
- Rust 程式設計視訊教程(進階)——005_2 使用帶有泛型和 Fn trait 的閉包Rust程式設計泛型AI
- win10系統如何安裝aspen(帶視訊)Win10
- 自帶多媒體視訊播放器Infuse pro播放器
- iOS ARKit錄製視訊(AVAssetWriter & 有聲音)iOS
- 視訊錄影軟體,沒有什麼搞不定的!