MongoDB的Transaction教學,讓MongoDB不再只能做「假交易」

早期的MongoDB沒辦法做Transaction,必須用要使用db.collection.findAndModify()來進行尋找合併修改的元子操作,或是透過Two Phase Commit來模擬交易行為。好消息是從MongoDB 4.0開始增加了Transaction機制,MongoDB 5.0、6.0又更完善了此功能。本文教大家如何在透過JavaScript來使用真正的MongoDB Transaction。

使用Java擷取檔案副檔名、判斷檔案類型(不用第三方套件)

本篇教學文章示範如何使用Java不透過第三方套件來判斷檔案的副檔名,以及檔案類型,只需要Java 7的NIO就可以達成,再加上Java 8的Optional與Stream API來更優雅的處理。使用原生的API可以避免一些問題,例如執行時還需要第三方套件、第三方套件還包含太多用不上的API徒增檔案大小、第三方套件不更新可能有漏洞等麻煩。

Spring Data JPA與Hibernate報錯failed to lazily initialize a collection

在Java使用Spring或是Hibernate時,使用OneToMany、ManyToMany來標注Entity Class非常方便,可以輕鬆處理外來鍵與外來資料表的問題。但偶爾使用getXXX()方法要讀取外來資料表的時候,可能會遇到Hibernate報錯說「org.hibernate.LazyInitializationException: failed to lazily initialize a collection」,本篇文章將解析為什麼會發生這種問題,以及要怎麼解決它。