問題タブ [hibernate-tools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - mavenを使用してhibernate-toolsを構成し、hibernate.cfg.xml、*。hbm.xml、POJO、およびDAOを生成する方法
自動生成されたhibernate.cfg.xmlファイルの.hbm.xmlファイルをパッケージパスでマッピングする前にMavenを強制する方法を教えてもらえますか?
私の一般的な考え方は、mavenを介してhibernate-toolsを使用して、アプリケーションの永続性レイヤーを生成したいということです。したがって、hibernate.cfg.xmlが必要であり、次にすべてのmy_table_names.hbm.xmlが必要であり、最後にPOJOが生成されます。それでも、 *。hbm.xmlファイルをフォルダーhbm2java
に入れると、目標は機能しませんが、マッピングファイルをテーブル名のみで指定します。src/main/resources/package/path/
hbm2cfgxml
hbm2cfgxml
したがって、大きな問題は、hibernate.cfg.xmlが次のようになるように構成するにはどうすればよいかということです。
私のpom.xmlは、現時点では次のようになっています。
そして2番目の質問:実行する前にリソースをターゲットフォルダーにコピーするようにMavenに指示する方法はありますhbm2java
か?現時点で使用しています
そのためですが、もっと良い方法があるはずです。
助けてくれてありがとう。
アップデート:
@Pascal:ご協力いただきありがとうございます。マッピングへのパスは現在正常に機能していますが、以前は何が悪かったのかわかりません。おそらく、データベース構成の読み取り中にhibernate.cfg.xmlへの書き込みに問題があります(ファイルは更新されますが)。
ファイルhibernate.cfg.xmlを削除し、それをdatabase.propertiesに置き換えて、ゴールhbm2cfgxml
とを実行しましたhbm2hbmxml
。私はまた、それらの目標でoutputDirectory
norをもう使用しません。configurationfile
その結果、ファイルhibernate.cfg.xml
とすべて*.hbm.xml
がデフォルト値であるtarget / hibernate3/generated-mappings/フォルダーに生成されます。hbm2java
次に、次のように目標を更新しました。
しかし、私は次のようになります。
どうすれば対処できますか?もちろん、私は追加することができます:
目標に向かってhbm2hbmxml
いますが、これは最善のアプローチではないと思いますか?生成されたすべてのコードとリソースをsrc/
フォルダーから遠ざける方法はありますか?
このアプローチの目標は、src / main /javaまたは/resourcesフォルダーにソースを生成することではなく、生成されたコードをターゲットフォルダーに保持することだと思います。私はこの観点に概ね同意しているので、最終的にhbm2dao
はプロジェクトを実行してパッケージ化し、ビジネスレイヤーから生成された永続性レイヤーコンポーネントとして使用することを継続したいと思います。これもあなたが意味したことですか?
eclipse - @SequenceGenerator-allocationSize、EclipseHibernateToolsを使用したリバースエンジニアリング
Eclipse Hibernate Toolsを使用して、OracleデータベースからJPAアノテーションを使用してドメインクラスを作成します。シーケンスの生成を制御するために、hibernate.reveng.xmlに次のエントリを追加しました。
...
<primary-key>
<generator class="sequence">
<param name="sequence">SEQ_FOO_ID</param>
</generator>
</primary-key>
...
これにより、次の注釈が付けられます。
@SequenceGenerator(name = "generator", sequenceName = "SEQ_FOO_ID")
ただし、「allocationSize」を次のように設定する必要があります。
@SequenceGenerator(name = "generator", sequenceName = "SEQ_FOO_ID", allocationSize = 1)
これをhibernate.reveng.xmlで何らかの方法で設定することは可能ですか?
hibernate - 生成されたクラスにパッケージ名を追加するように hbm2java と hbm2dao を構成する方法
hbm2java
POJO クラスと DAO オブジェクトを生成するように Maven で構成しようとしています。私が扱っている問題の 1 つは、パッケージ名が生成されないことです。そのために次のpomを使用しています:
それでも、生成されたコードは次のコードで始まります。
packagenameで定義されているように、Maven にパッケージパーツを強制的に生成させる方法はありますか?
アップデート:
これも hibernate-tools (hbm2cfgxml) によって自動的に生成された私の hibernate.cfg.xml です。
java - Hibernateツール-DAO生成
Eclipse休止ツールプラグインを使用してデータベースをリバースエンジニアリングしています。私は一日中、DAOジェネレーターにセッションファクトリやトランザクションなどでHQL/Criteriaを使用させる方法を探しました。
現在、データベースにテーブルTABLEがある場合、DAOクラスTableHomeを取得します。このクラスは、永続性EntityManagerを使用します。
代わりにTableDAOを生成する古いバージョンのHibernateツールを使用したチュートリアルを見つけました。これがまさに必要なものです。
どうもありがとうございます。
java - Hibernateでサービスレイヤーを生成する
Hibernate Toolsを使用して、DBスキーマから.hbm.xml
マッピングファイルとファイルを生成します。.java
私の質問は、サービスクラスも生成するオプションはありますか?これらは、store()、find()、delete()などのメソッドを実装するクラスです。C#には、ほとんどすべてを生成するための多くのソリューションがあることを私は知っています。同じものを探していますが、Hibernateを使用しています。ありますか?
eclipse - Hibernate Tools Eclipse クラスパス
Hibernate Tools で使用される Eclipse でクラスパスを設定するにはどうすればよいですか?
プロジェクトを右クリックして、プロパティ、Java ビルド パス、ライブラリ タブの順に移動し、適切な JAR を追加してみました。ただし、上記のプロセスを使用して JAR を追加した後でも、Hibernate Tools は依然として classNotFound を返します。
java - DB切り替え後にEclipseHibernateツールが機能しなくなる
Eclipseで休止状態のツールを使用していますが、DBを変更するまでは正常に機能していました。新しいデータベースを構成し、テストケースを実行しました。休止状態のツールを除いて、すべて問題ありません。HibernateコンソールはDBからテーブルをフェッチしておらず、例外もスローしていません。手動で構成を入力し、[接続のテスト]をクリックすると、テストpingは成功しますが、それでも新しいrev engファイルを作成しようとすると、テーブルが表示されません。これについて教えてください。
hibernate - HibernateToolTask (hbm2hbmxml) は、@org.hibernate.annotations.Index 注釈からの hibernate-mapping でインデックスを生成しません
休止状態の注釈を使用して、POJO から休止状態のマッピングを生成しようとしています。次に、liquibase を使用してデータベース スキーマを生成します。そのため、POJO でインデックスを定義する必要があります。
サンプル POJO:
しかし、ant で HibernateToolTask を実行すると、次のようになります。
マッピングでインデックスを取得しません:
同時に、hbm2ddl を実行すると、「インデックスの作成」が生成されます。
マッピングで休止状態にインデックスを生成させるにはどうすればよいですか?
アップデート:
私は、liquibase が注釈を使用してスキーマを生成することを発見したので、問題のこの部分は解決されました。私はまだ別のものを持っています:
既存のデータベースを POJO にリバース エンジニアリングしたいと考えています。POJO はマッピングから生成され、マッピング (jdbcannotation-hbm2hbmxml を使用して生成) にはインデックスがありません。これは本質的に同じ問題だと思います: hbm2hbmxml はインデックスを生成しません。
更新 2:
なぜそれが必要なのですか?既存のデータベース スキーマがあります。以前はそれを変更してから、POJO をリバース エンジニアリングしていました。ここで、POJO を操作し、アノテーションによってマッピングとスキーマを生成したいと考えています。
そのため、現在のデータベース スキーマに一致する POJO を使用して先に進みたいと考えています。どうやら、外部キー名とインデックス以外はすべて一致しています。しかし、hbm2java は @Index アノテーションを生成しません。
このタスクは ddl でインデックスを生成し、POJO でインデックスを生成しません。
java - Hibernate Tools リバース エンジニアリング DAO クラスの名前を変更するにはどうすればよいですか?
そのため、Hibernate Tools を使用してデータベースをリバース エンジニアリングしようとしていますが、Freemarker テンプレートを使用して、それが生成するコードを弱体化しようとしています。問題は、生成する DAO クラスの名前を変更したいということです。デフォルトでは、DAO クラスは PersonHome という形式で名前が付けられますが、名前を PersonDAO に変更するには、dao/daohome.ftl を変更しました。
これにより、生成されたクラス名が PersonDAO に変更されましたが、Java ファイルはまだ PersonHome.java と呼ばれていました。
生成されたファイル名をソース コードに合わせて変更できる場所はありますか?
java - SQL情報を使用して、Hibernateツールを使用してスキーマドキュメントとコードコメントを入力しますか?
Eclipse内からHibernateToolsをセットアップして、既存のDBに基づいてクラスを自動生成しました。表ごとに、SQLServer内の表と各列を文書化しました。そのドキュメント情報を使用して、生成されたクラスにコメントを付け、スキーマエンティティのドキュメントにデータを入力する方法はありますか?hbm.xmlマッピングファイルに配置できるメタタグがあるようですが、毎回自動生成されるので、それらを追加し直すか、新しい変更を継続的にマージする必要があります。さらに、理想的にはDBを「真実」の情報にし、この種の情報をマッピングファイルに保存しないようにします。誰かがこれが可能かどうか、もしそうならそれをどのように行うか知っていますか?ありがとう...