我有一個Google Cloud Dataflow應用程序,作爲轉換的一部分,通過JPA 2和Hibernate將一些信息記錄到MySQL數據庫。當使用DirectPipelineRunner運行此應用程序時,它會查找persistence.xml並運行良好。使用JPA 2和Hibernate的Google Cloud Dataflow應用程序將不會與BlockingDataflowPipelineRunner一起運行。無法找到persistence.xml
但是,當我嘗試使用BlockingDataflowPipelineRunner時,持久性上下文將不會初始化,因爲它找不到persistence.xml。也許它不能從CLASSPATH加載?該消息是找不到在persistence.xml中命名的唯一持久性單元。
有沒有人成功將JPA 2和Hibernate用於Dataflow應用程序?如果是這樣,在使用BlockingDataflowPipelineRunner時,你需要跳過哪些環節才能使其工作?
Hibernate默認在很多位置查找persistence.xml文件。您可能需要確認上傳的jar包含META-INF/persistence.xml –
如果您添加標誌--workerLogLevelOverrides = org.hibernate#TRACE,該標誌應該會給您更多與Hibernate相關的詳細輸出(您可能需要配置JBoss日誌記錄以轉到SLF4J或JUL以獲取Hibernate日誌記錄,http://docs.jboss.org/hibernate/orm/4.3/topical/html/logging/Logging.html) –