問題タブ [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.
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/アプリサーバーを使用したくありません。これはスタンドアロンアプリケーションです。
java - Hibernate hbm2java
EclipseでのHibernateコード生成を介して注釈付きpojoを生成しています。クラスは正常に生成されますが、ビューのクラスは@EmbeddedIdで構成されているため、これは望ましくありません。このクラスに直接属性を設定したい。生成ダイアログで「基本的な型付き複合IDを生成する」オプションを見つけましたが、チェックを外すと、@ EmbeddedIdを使用してビュークラスも生成されますが、対応するIdクラスは生成されません。@EmbeddedIdなしでこれらのクラスを生成する方法はありますか?
java - ニーズに合わせて休止状態で生成されたコードを変更する必要がありますか?
私の意見では、自動生成されたコードは一般的に/好ましくは手動で変更しないでください。何も再生成できないためです。しかし、ある経験豊富な休止状態のユーザーは、必要に応じて hbm2java 生成コードを常に変更すると言っています。「Fit needs」も重要なので、これが主たる善なのかどうかはわかりません。
hibernate - Hibernate エラー: hbm2java コードで null 許容プロパティと null 非許容プロパティが混在しています
を使用してhibernate3-maven-plugin
Oracle10g データベースにクエリを実行し、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 アプリケーション コンテキスト:
java - Hibernate Hbm2Java が無効なデータ型の POJO を生成する
私は Hibernate の初心者であり、その内部についてほとんど知識がありません。Hibernate のツールHbm2Javaによって xml スキーマから POJO を生成しています。そのツールを実行すると、モデル (xml スキーマ) を通過し、それぞれの POJO が生成されます。しかし、生成されたファイルを開くと、POJO のメンバーに無効なデータ型が含まれているため、コードをコンパイルできません。同じモデルの .sql ファイルを生成するHbm2Ddlタスクもあります。Hbm2Ddl は、必要に応じて .sql ファイルを生成します。何が間違っている可能性がありますか?
生成された .java ファイルは次のようになります。
なぜこれが起こっているのか、どうすればわかりますか?
java - 2 つ以上の hibernate hbm ファイルを単一の Java pojo クラスにマッピングする
MyClass に pojo クラスがあるテーブル A の hbm.xml ファイル
テーブル B の hbm.xml ファイル (同じ pojo クラス「MyClass」もあります)
これはPOJOクラスです
テーブルに挿入するにはどうすればよいですか? 次のコードを試しました:
しかし、コミットすると、次の例外がスローされます