別の場所に設定ファイルを探し、そしてresources
フォルダ内の私のhibernate.cfg.xml
ファイル(下のスクリーンショット)に設置し続ける:Hibernateは、私は、Eclipse IDEを使用して私のプロジェクトを構築し
問題をDAOクラスでhibernate.cfg.xml
を参照しようとすると発生します。あなたが見ることができるように、私はまだ私のプロジェクトで「正しい」の場所を指しています
private static SessionFactory getSessionFactory() {
String hibernatePropsFilePath = "src/main/resources/hibernate.cfg.xml";
File hibernatePropsFile = new File(hibernatePropsFilePath);
Configuration configuration = new Configuration();
configuration.configure(hibernatePropsFile);
configuration.addAnnotatedClass(MyClass.class);
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
return configuration.buildSessionFactory(serviceRegistry);
}
DAOのgetSessionFactory()例:ここで私は私のSessionFactory
取得私のコードのスニペットです私はポストマンを使用してテストする場合は、しかし、私は次のエラーを取得する:
HTTP Status 500 - Request processing failed; nested exception is org.hibernate.internal.util.config.ConfigurationException: Specified cfg.xml file [C:\Users\MYUSERNAME\Desktop\src\main\resources\hibernate.cfg.xml] does not exist
私の質問:はなぜそれは常に私のデスクトップFに探しています私のプロジェクトでのみ見えるように変更するにはどうしたらいいですか?私はチェックして、私のリソースパスは私のWeb配置アセンブリ(下のスクリーンショット)に存在することを確認しました:
として簡単にセッションファクトリを構築することができますが、パスを指定せずにしようとしましたか? 'Configuration configuration = new Configuration()。configure();を使うだけです。 StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()。 applySettings(configuration.getProperties()); SessionFactory factory = configuration.buildSessionFactory(builder.build()); ' –
@ChetanJadhavCDこれが動作します、ありがとうございます!何故これが今働いているのか不思議です(これはずっと前に試しました) – abhi