問題タブ [hibernate]

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 投票する
18 に答える
338095 参照

java - Hibernate と MySQL での作成タイムスタンプと最終更新タイムスタンプ

特定の Hibernate エンティティについて、その作成時刻と最後に更新された時刻を保存する必要があります。これをどのように設計しますか?

  • データベースで使用するデータ型は何ですか (MySQL を想定し、おそらく JVM とは異なるタイムゾーンで) データ型はタイムゾーンを認識しますか?

  • Java で使用するデータ型 ( DateCalendarlong、...)?

  • タイムスタンプの設定を担当するのは、データベース、ORM フレームワーク (Hibernate)、またはアプリケーション プログラマーのどれですか?

  • マッピングにはどのような注釈を使用しますか (例: @Temporal)?

私は実用的なソリューションを探しているだけでなく、安全で適切に設計されたソリューションを探しています。

0 投票する
5 に答える
14551 参照

java - MySQL プリペアード ステートメント キャッシングの使用方法

プリペアド ステートメントをキャッシュする MySQL の機能を利用するにはどうすればよいですか? 準備済みステートメントを使用する理由の 1 つは、同じ準備済みステートメントを再度使用する場合に、準備済みステートメント自体を複数回送信する必要がないことです。

上記の Java の例を実行すると、mysqld ログ ファイルに 5 組の Prepare コマンドと Execute コマンドが表示されます。ps 割り当てをループの外に移動すると、もちろん、1 つの Prepare コマンドと 5 つの Execute コマンドになります。接続パラメータ「cachePrepStmts=true」は、ここでは何の違いもないようです。
Spring と Hibernate を使用して同様のプログラムを実行する場合、送信される Prepare コマンドの数 (1 または 5) は、cachePrepStmts 接続パラメーターが有効になっているかどうかによって異なります。Hibernate は、cachePrepStmts 設定を利用するために準備済みステートメントをどのように実行しますか? 純粋な JDBC を使用してこれを模倣することは可能ですか?
これをMySQL Server 4.1.22およびmysql-connector-java-5.0.4.jarで実行していました

0 投票する
6 に答える
48918 参照

java - Hibernate が多対 1 の関連付けられたオブジェクトを熱心にフェッチするのを止める方法

多対 1 要素で宣言されているドメイン オブジェクトにプロパティがあります。このプロパティの基本的な構文は次のようになります。

ここでのアイデアは、Hibernate がこのプロパティを積極的にフェッチしないようにすることです。null の可能性があるため、not-found 無視が設定されます。

しかし、Hibernate は、この関連付けを含むクラスをロードすると、親クラスがロードされるときに実際のクラス (プロキシでさえない) インスタンスをロードします。一部のプロパティはサイズが 1MB を超えるため、大量のヒープ スペースを占有します。

ただし、not-found が例外に設定されている (またはデフォルトで例外に設定されている) 場合、このプロパティを持つ親クラスはプロキシをロードします!

このプロパティをnullにすることを許可しながら、休止状態がプロキシをロードしないようにするにはどうすればよいですか?

私は lazy=no-proxy を見つけましたが、ドキュメンテーションはある種のバイトコードの変更について述べており、詳細には触れていません。誰かが私を助けることができますか?

問題があれば、それは Hibernate の Java バージョンであり、少なくともバージョン 3 です (役立つ場合は実際のバージョンを調べることができますが、今のところ Hibernate 3+ です)。

先に明記しませんでしたが、Java のバージョンは 1.4 です。そのため、Java アノテーションはサポートされていません。

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

java - JBoss アプリケーションに適した MySQL ドライバーが見つかりません

私は Java Web アプリケーションを作成するのが初めてで、アプリケーションを介してデータベース (ccdb と呼ばれる) と対話しようとすると、この問題に遭遇しました。

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/ccdb/

私のアプリケーションは JBoss で実行され、Hibernate を使用して MySQL データベースとやり取りします。プロジェクトの lib\mysql-connector-java-5.1.6-bin.jar に MySQL ドライバーがあり、Eclipse で .jar を「Java EE モジュールの依存関係」として構成して、Web にコピーされるようにしています。 Eclipse を介して JBoss にデプロイすると、inf\lib\ になります。再確認したところ、ドライバーは間違いなくプロジェクトの .war ファイルにあるので、見つけられるはずですよね?

私のhibernate.cfg.xmlには、休止状態をドライバーに向ける必要があるこの行が含まれています。

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

これを機能させるために私が何をする必要があるか知っている人はいますか? MySQL データベースを動作させるには、JBoss データソースとして構成する必要がありますか?

前もって感謝します。

編集: kauppi のソリューションは機能しますが、他の jar と一緒に lib\ に配置することをお勧めします。何か案は...?

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

java - カスタム Hibernate UserType の作成 - isMutable() とはどういう意味ですか?

プロジェクトの Hibernate でカスタム UserType を作成しています。isMutable メソッドにたどり着くまでは、比較的簡単でした。私は、この方法が契約上何を意味するのかを理解しようとしています。

UserType を作成しているクラスが不変であることを意味するのでしょうか、それとも、このクラスのインスタンスへの参照を保持するオブジェクトが別のインスタンスを決して指さないことを意味するのでしょうか?

オブジェクト自体が変更可能だったため、 Hibernate Community Wikiで true を返した例をいくつか見つけました- http://www.hibernate.org/73.html

コミュニティ wiki の他の例は、変更可能であるにも関わらず、理由を説明せずに false を返しました。

JavaDoc を確認しましたが、あまり明確ではありません。

UserTypeの JavaDoc から:

Typeの JavaDoc から:

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

java - Hibernate が複合キーで無効な結果を返す

私は最も奇妙な結果を得ています。複合キーを持つクラスがあります。次のクエリを実行すると:

from LOVEJB l order by l.canonicalId desc

私の結果は、私が要求した「canonicalId」列によって順序付けられていません。代わりに、canonical id の結果は次のようになります。

823 823 822 823 、、、

これを解読するにはどうすればよいか、誰かが私にいくつかの指針を与えることができますか? 私はすでにhashcodesequalsを台無しにし、新しいクラスなどを試しましたが、役に立ちませんでした。

0 投票する
4 に答える
4790 参照

java - 休止状態でマップされた日付を比較していますか?

javaオブジェクトからHibernateを使用してデータベースに日付をマップするにはどうすればよいですか? さまざまなアプローチを試していますが、満足していません。なんで?私の問題を説明しましょう。私は呼び出すメインメソッドを含む次のクラス[1]と、次のマッピング[2]を持っています。このアプローチに関する問題は、コンソール出力を見るとわかります。

間違い

間違い

1

-1

1224754335648

1224754335000

木 10 月 23 日 11:32:15 CEST 2008

クロック@67064

お分かりのように、 to の日付は正確には同じではありませんが、そうであるべきですgetTime。マッピングでタイムスタンプの代わりにjava.sql.Date、Timestamp、およびdateも試しましたが、成功しませんでした。

なぜ最後の 3 桁がゼロなのか、これが休止状態なのか、Java の問題なのか、それとも私自身の愚かさなのか、疑問に思います。

読んでくれてありがとう。

[1]

[2]

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

java - Hibernate はいつ二次キャッシュから読み取り、いつ DB から読み取りますか?

私の知る限り、Hibernate では、エンティティとコレクションを構成して、2 番目のレベルのキャッシュに格納できます。

Hibernate はいつこれらのキャッシュされたエンティティを二次キャッシュから読み取ろうとし、いつ DB にヒットしますか? Hibernate は、呼び出しによってエンティティをロードするときSesssion.get()、およびプロキシ (コレクションを含む) を初期化するときに、第 2 レベルのキャッシュからのみ読み取りますか? HQL クエリまたは Criteria クエリを実行するときに、Hibernate が 2 番目のレベルのキャッシュにヒットすることはありますか?

例?

0 投票する
7 に答える
1115 参照

hibernate - Hibernateでは常に第2レベルのキャッシュを使用しますか?

Hibernateで常に第2レベルのキャッシュを使用しますか、それとも最初にそれを使用せずに試し、パフォーマンスが低下した場合にのみ使用しますか?

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

java - JBoss/EJB vs 対称 DS

私はちょうど始まろうとしているプロジェクトに取り組んでいます。別のプロジェクトで忙しかったので、同僚が先に進み、新しいプロジェクトの仕様に取り組み始めました。私が入ったとき、彼らは単純な SQL で永続化を行うことを選択したばかりでしたが (ただし、Hibernate を追加するという私の提案をすぐに受け入れました)、私が聞いたことのないSymmetric DSというツールを使用してデータ複製を実行する必要があると主張しました。

私が知る限り、JBoss サーバー (現在の計画では Tomcat のみを使用する予定です) で EJB3 を使用すると、すべてのトランザクション/レプリケーションの問題が処理され、多くの頭痛の種から解放されるのではないかと心配しています。

皆さんは、このSymmetric DSをどのように見ていますか? (私はそれに対して何も反対していないことに注意してください.JBossが長い間存在し、非常に立派な評判を持っていることを知っているだけです)

2 つのソリューションをどのように比較しますか?

ありがとう!

EDIT : ところで、SymmetricDS は重複した主キーをどのように処理しますか? つまり、データベース A に行を追加し、データベース B に別の行を追加すると、両方ともおそらく同じ主キーで追加されますよね? 競合を避けるために、SymmetricDS はそれをどのように処理しますか? このフォーラムでの議論は、最初はその一部に対処しているように見えましたが、私の質問にはまったく答えていません。