persistence.xmlが見つかったかどうかをテストするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1400103

  •  05-07-2019
  •  | 
  •  

質問

私は、他の人によって開発されたが、私にとっては新しいプロジェクトでいくつかのことをテストする必要があります。 彼らはJPA実装としてHibernateを使用しています。

すべてがセットアップされた仮想マシンを手に入れましたが、Testclient(小さなコンソールプログラム、ユニットテストなし)を起動したい場合。私はいつも同じエラーを受け取ります。

Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
    ...    
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
    at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
    at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
    at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:409)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
    ... 7 more

プロジェクト構造は次のようになります。奇妙なことに、私はすでにこのことを実行していました(私の夏休みの前に。

|-- bin
|-- lib
|-- rsc
|   |-- META-INF
|   |   `-- persistence.xml
|-- src
|   |-- org 
|   |    | ... all sourcecode below 
`-- target

問題を絞り込もうとしたため、META-INFフォルダー全体を削除しました。それでも同じエラー。それは私が期待していたことではなく、persistence.xmlがまったく見つからないと信じるようになりました。 なぜMETA-INFをrscフォルダーに入れたのかわかりませんが(前述したように、それは私のプロジェクトではありません)、ルートフォルダーまたはsrcフォルダーに入れたときにエラーが残ります。

persistence.xmlが見つかったことを確認するにはどうすればよいですか? META-INFを配置するドキュメントはありますか。 (そして、なぜこのエラーメッセージはとても誤解を招くのですか?)

役に立ちましたか?

解決

テストアプリを起動するときに、コンパイルされたファイル/ jarがどこで終わるかは、ビルドプロセスによって異なります。確かに、src-folderから開始することはありません。アプリを実行するためのビルドまたはテストフォルダーを取得します。その場合、フォルダー構造は通常次のようになります。

|- build
   |- classes
      |- org (packages)
         |- ...
      |- META-INF
         |- persistence.xml
         |- ... (other config files)

このも確認できます。リンク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top