私はWebアプリケーションで作業しています。私たちはプロジェクトでORMとしてHibernateを使用しています。実際、私たちのアプリケーションは、ユーザーの選択に基づいていくつかのテーブルを動的に作成します。ユーザーは表名、列名を選択してから、CSVファイルからデータをインポートできます。だから私の質問は:動的に作成されたこのテーブルをHibernateオブジェクトとJavaオブジェクトにどのようにマップするかです。動的に作成されたテーブルをHibernateでどのようにマップするか?
答えて
それは、動的に行うことができますが、それは多少厄介です:
のSessionFactoryが構築される前に、動的にHibernateの設定オブジェクトを変更する必要があります。 Springを使用している場合、これはAnnotationSessionFactoryBean
のpostProcessAnnotationConfiguration()
メソッドをオーバーライドすることによって行うことができます。それ以外の場合は、buildSessionFactory()
を呼び出す前にConfigurationオブジェクトを使用して行う必要があります。
アプリケーション再起動なしでこれを行う必要がある場合は、SessionFactoryを再構築するか(ユーザが完了するまで待つ必要があることを意味します)、カスタムクラス専用のSessionFactoryインスタンスを使用します。カスタムクラスが組み込みクラスを参照する必要がある場合は、不可能です)。
configuration.getMappings()
でクラス/テーブルのマッピングにアクセスできます。 Table APIで新しいテーブルマッピングを作成し、addTable()
経由で設定に追加する必要があります。同じことをクラスマッピングを表すPersistentClassで行う必要があります。複数のエンティティを表すために同じクラスを使用している場合(複数のテーブルをマップするなど)、それぞれに固有のエンティティ名を使用するようにしてください。すべてのアプリの再起動時にこれを行う必要があります(設定を変更する)。
どのくらいのテーブルが動的に作成されますか?テーブルは似ていて、データベース名を変更するだけですか?ビューへ http://www.experts-exchange.com/Programming/Languages/Java/J2EE/Frameworks/Spring/Q_24237099.html
あなたは完全に新しいテーブルを作成する場合は、ビューを使用することができ、そしてちょうど直接人:ここで
は、テーブル名を変更することについての議論のですか?JDBCでクエリを動的に作成するのではなく、なぜこのためにHibernateを使用していますか?
データベースソリューション - ビューを作成し、それを1つのテーブルまたは別のテーブルにポイントすることができます(構造が同一であると仮定します)。
あなたはネイティブSQL(DDL)を実行するために、あなたのアプリケーションが必要になりTABLE_B
SELECT * FROM としてVIEW HIBERNATE_NAME をCREATE TABLE_A
または SELECT * FROM としてVIEW HIBERNATE_NAME をCREATE、 しかし、このHibernateハックよりも簡単になるはずです
- 1. 動的に作成された 'el'でバックボーンビューを作成するにはどうすればよいですか?
- 2. どのように動的に作成されたフォームを閉じるには?
- 3. 動的に生成されたテーブル行を削除するにはどうすればよいですか?
- 4. 動的に作成されたボタンに動的に作成されたボタンを追加するにはどうすればいいですか?
- 5. 動的に作成されたhtmlテーブルを使用したページング
- 6. テーブル行でスワイプ機能を動的に動作させるにはどうすればよいですか?
- 7. 動的に作成された行のテーブル行を移動しますか?
- 8. 動的に型指定されたC#イテレータブロックを作成するにはどうすればよいですか?
- 9. LinkedHashMapとHibernateをどのようにマップするのですか?
- 10. Rails 3でどのように動的に生成されたブレッドクラムを作成しますか?
- 11. この動的に生成されたhtmlテーブルをフォーマットするにはどうすればいいですか?
- 12. 動的に作成されたパネルをどのように色付けするのですか?
- 13. 動的に作成されたコントロールをどのように操作できますか?
- 14. PHPを使ってmysqlテーブルに動的エントリを作成するにはどうすればよいですか?
- 15. java-hibernate実行時に動的テーブルを作成
- 16. Hibernateを使って動的にデータベースにテーブルを作成するには?
- 17. 3列テーブル(つまりタイルリスト)を動的に作成するにはどうすればよいですか?
- 18. 動的に作成されたテーブルでJqueryが動作しない
- 19. 動的に作成されたPHP gdライブラリのチャートに画像マップを追加するにはどうすればよいですか?
- 20. クリック時に動的に作成されたテーブル行を非表示にする
- 21. 動的に作成されるボタンのパラメータを設定するにはどうすればよいですか?
- 22. 動的に作成されたテーブルからデータを取得する方法
- 23. NHibernate - 動的に作成されたテーブルを使って作業する
- 24. どのように動的にアンドロイドでスピナーを作成するのですか?
- 25. 動的に生成されたピボットテーブルを一時テーブルにする
- 26. 動的URLを作成するにはどうすればよいですか?
- 27. クエリ結果を生成されたXMLに一般的にどのようにマップできますか?
- 28. どのようにwxpythonで動的に作成されたウィンドウ/ボタンを識別するには?
- 29. HibernateとSpring - データベーステーブルが自動的に作成されない
- 30. ASP.NETで動的に作成されたテーブルのセル値を取得します。
私は同意する、この問題のためにHibernateを使用することは間違っています。 – sbidwai