問題タブ [hbm2java]

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.

0 投票する
1 に答える
4591 参照

java - 重大になる:sessionfactoryの取得中にJNDIでSessionFactoryを見つけることができませんでした

データベースと通信するための永続層としてHibernateを使用しています。mavenプラグインhbm2javaを使用して、dao、java、* hbm.xml、およびhibernate.cfg.xmlを生成しました。その時まで、プラグインは正常に機能します。

しかし、dbと通信しようとすると、次の例外が発生します。

デフォルトでは、hibernate3:hbm2cfgxmlは、sessionFactory名がSessionFactoryであるhibernate.cfg.xmlファイルを生成します。次のように。

プラグインは、セッションファクトリを取得するために次のコードを生成します。

EclipseHibernateプラグインを使用した同様のクエリの問題が見つかりました-JNDIでsessionfactoryを見つけることができませんでした。

ただし、プラグインによって生成された400以上のクラスを変更して、*Home.javaからセッションファクトリを取得することはできません。

400以上のクラスを変更せずに、休止状態のプラグインでこの問題を取り除く方法は?

Web/アプリサーバーを使用したくありません。これはスタンドアロンアプリケーションです。

0 投票する
2 に答える
5408 参照

java - Hibernate hbm2java

EclipseでのHibernateコード生成を介して注釈付きpojoを生成しています。クラスは正常に生成されますが、ビューのクラスは@EmbeddedIdで構成されているため、これは望ましくありません。このクラスに直接属性を設定したい。生成ダイアログで「基本的な型付き複合IDを生成する」オプションを見つけましたが、チェックを外すと、@ EmbeddedIdを使用してビュークラスも生成されますが、対応するIdクラスは生成されません。@EmbeddedIdなしでこれらのクラスを生成する方法はありますか?

0 投票する
3 に答える
263 参照

java - ニーズに合わせて休止状態で生成されたコードを変更する必要がありますか?

私の意見では、自動生成されたコードは一般的に/好ましくは手動で変更しないでください。何も再生成できないためです。しかし、ある経験豊富な休止状態のユーザーは、必要に応じて hbm2java 生成コードを常に変更すると言っています。「Fit needs」も重要なので、これが主たる善なのかどうかはわかりません。

0 投票する
0 に答える
1810 参照

hibernate - Hibernate エラー: hbm2java コードで null 許容プロパティと null 非許容プロパティが混在しています

を使用してhibernate3-maven-pluginOracle10g データベースにクエリを実行し、hbm2javaゴールを使用して JPA アノテーションを使用して Java クラスを生成しています。次に、Spring を使用して、注釈付きコードをスキャンするセッション ファクトリを構成します。

との長い闘争の後、hbm2javaクラスを生成することができましたが、別の問題が発生しています

データベースは、テーブル FOO および BAR を次のように定義します。

したがって、テーブル FOO には、テーブル BAR への外部キーである 2 つの列があります。列 FOO.STATUS_CODE は NULL ではない必要がありますが、列 FOO.REASON_CODE は NULL の場合があります。ここでのロジックは、FOO にはステータスが必要ですが、すべてのステータスに理由が必要なわけではないということです。

表 BAR には列 BAR.REASON_CODE および BAR.STATUS_CODE があり、どちらもヌルではありません。ここでのロジックは、さまざまな (すべてではない) ステータス コードの理由を関連付けます。たとえば、ステータスが「キャンセル」の場合、理由は「詐欺」、「能力不足」などである可能性があります。

「アクティブ」などのステータスには関連する理由がないため、テーブル BAR には存在しませんが、テーブル FOO のステータス コードとして発生する可能性があることに注意してください (関連する理由コードなし)。ただし、FOO の行に「キャンセル済み」という状況コードがある場合、その状況のテーブル BAR で定義された理由コードの 1 つも含まれている必要があります。

したがって、テーブル定義は私には問題ないように思えます (私はデータベースの専門家ではありませんが)。

Mavenのhbm2javaゴールは、テーブル FOO に対して次のコードを生成します。

ここの STATUS_CODE 列のみが null 非許容であることに注意してください。

ただし、休止状態のセッション ファクトリ Bean が作成され、注釈付きのクラスがスキャンされると、「プロパティに null 許容列と非 null 許容列を混在させることはできません」という例外が生成されます。

質問

これは、休止状態の注釈処理コードによって発生した有効なエラーですか (この場合、データベース内のテーブル定義を変更する必要があります)、それとも無効ですか? 後者の場合、そのようなエラーを無視するようにセッション ファクトリ コードを構成できますか?

構成

Maven の依存関係:

  • org.hibernate/hibernate-core/3.5.6-Final
  • org.hibernate/hibernate-annotations/3.5.6-Final
  • org.springframework/spring-orm/3.1.2-RELEASE

Spring アプリケーション コンテキスト:

0 投票する
0 に答える
430 参照

java - Hibernate Hbm2Java が無効なデータ型の POJO を生成する

私は Hibernate の初心者であり、その内部についてほとんど知識がありません。Hibernate のツールHbm2Javaによって xml スキーマから POJO を生成しています。そのツールを実行すると、モデル (xml スキーマ) を通過し、それぞれの POJO が生成されます。しかし、生成されたファイルを開くと、POJO のメンバーに無効なデータ型が含まれているため、コードをコンパイルできません。同じモデルの .sql ファイルを生成するHbm2Ddlタスクもあります。Hbm2Ddl は、必要に応じて .sql ファイルを生成します。何が間違っている可能性がありますか?

生成された .java ファイルは次のようになります。

なぜこれが起こっているのか、どうすればわかりますか?

0 投票する
1 に答える
364 参照

java - 2 つ以上の hibernate hbm ファイルを単一の Java pojo クラスにマッピングする

MyClass に pojo クラスがあるテーブル A の hbm.xml ファイル

テーブル B の hbm.xml ファイル (同じ pojo クラス「MyClass」もあります)

これはPOJOクラスです

テーブルに挿入するにはどうすればよいですか? 次のコードを試しました:

しかし、コミットすると、次の例外がスローされます