問題タブ [spring-orm]

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 に答える
10821 参照

spring - Bean クラス [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean] の無効なプロパティ 'packagesToScan'

私は解決策を見つけようとしましたが、まだ運がありません。

「Pro Spring 3」(Apppress)[351ページ]をフォローしています

プロジェクトをjpaプロジェクトとして生成しました。

私が理解している限りpersistence.xml、Bean で内部的に使用または管理することができます。これが私が望んでいることです。

最新の場合、プロパティを定義する必要がありpackagesToScanます。

提案 (ctrl+space) を求めようとすると、packagesToScan プロパティがありません。ここに画像の説明を入力

私は何が欠けていますか?

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

rabbitmq - Spring AMQP/RabbitMQ および Hibernate Transaction Manager

Hibernate と PostgreSQL を使用する Spring アプリケーションがあります。また、Spring AMQP (RabbitMQ) も使用します。

次のように構成された Hibernate Transaction Manager を使用しています。

次のように構成された非同期メッセージ受信に SimpleMessageListenerContainer を使用しています。

したがって、基本的に、メッセージの受信はトランザクションである必要があると指定しました。メッセージ リスナーは、@Transactional でアノテーションを付けたメソッドを持つことができるサービスを呼び出し、場合によっては DB で CRUD 操作を実行します。

私の質問は、HibernateTransactionManager を使用して SimpleMessageListenerContainer レベルでトランザクションを管理することに問題はありますか? DB トランザクション マネージャーを使用して、RabbitMQ からのメッセージの受信をラップする問題はありますか?

私はここで XA を期待していません。サービスによる DB での操作が失敗した場合に、メッセージが RabbitMQ ブローカーに ack されないようにしたいだけです。

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

spring - Spring3.1およびJPA2で進行中のトランザクションの例外はありません

私はこれに何週間もいました。私はeclipselinkを試しましたが、今は単なるJPAです。私は同じ問題を抱え続けています。エンティティマネージャをフラッシュしようとするたびに、「javax.persistence.TransactionRequiredException:トランザクションは進行中ではありません」という例外が発生します。私はそれが私がすべてを配線する方法と関係があることを知っていますが、私はそれを理解することができません。

テスト用にJUnitテストを作成しようとしましたが、Springを初めて使用するため、まったく異なる問題が発生します。

注意事項: Spring 3.1を使用しているため、persistence.xmlを使用していません * App Server:WebSphere 8.5(Liberty Profile) *

例外

pom.xmlの依存関係

app-config.xml

db-config.xml

AbstractGenericDao

AccountDaoJpaImplパッケージcom.smartpharm.account.dao.impl;

AccountServiceImpl

AccountController

また、DBレイヤーでコミットしようとする直前のログには、作成されてEntityManagerが2回破棄されたログが表示されます。

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

hibernate - Spring Hibernate と jdbc テンプレートと spring orm

MySQL データベースと Spring をフレームワークとして使用するプロジェクトがあります。私はSpringを初めて使用し、データベースアクセスレイヤーの実装を検討しており、次のようないくつかのオプションが利用可能であることを発見しました.

  • Spring + Hibernate の使用
  • Spring JDBC テンプレートの使用
  • Spring ORM モジュールの使用

私はstackoverflowのさまざまな投稿に目を通し、Webで少し調査しましたが、すべての質問にはさまざまなオプションをサポートするさまざまな回答がありました. また、Spring JDBC テンプレートが現在推奨されていないという言及も見ました。

アプリケーションでは、1 時間あたり約 1000 のトランザクションが発生し、約 60% の読み取りと 40% の書き込みが発生する可能性があります。

3つのオプションのどれが適切で、その理由について答えを見つけるのを手伝ってくれる人はいますか? または、いくつかのリソースを教えていただければ、それも高く評価されます。

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

spring - HibernateException: コレクションへの共有参照が見つかりました

Hibernate 4 にアップグレードすると、何らかの奇妙な理由で次の例外が発生します: HibernateException: コレクションへの共有参照が見つかりました

次の Bean を次のようにマッピングしています。

HibernateCustomerProduct Bean に新しいコレクションを設定するたびに、例外が発生します。私のテストにはコレクションが 1 つしかないため、これは非常に奇妙ですが、別のコレクションが既にあるとまだ不平を言っています。そんなことがあるものか?私のテストは次のようになります。

誰かが私が間違っていることを知っていますか? Hibernate 3 では、これは問題なく動作します。

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

java - 継承の Spring 3.1 Hibernate 4 例外 [org.hibernate.mapping.RootClass にキャストできません]

こんにちは、Spring を Hibernate4 と Maven で使い始めたところです。基本的に私のクラス階層は HUmanMicroTask が MicroTask から拡張されたものです。将来的には、MicroTask から拡張された他のいくつかのクラスが存在する可能性があります。spring3 と hibernate 4 を起動して実行する最も簡単な方法である具象クラスごとに 1 つのテーブルを作成しようとしていましたが、コードを実行すると. 次の例外が発生し続けます

私はかなりの数のフォーラムを見てきましたが、どこで間違いを犯しているのかを判断することはできません. 私の MicroTask クラスは次のようになります。

私の HumanMicroTask クラスは次のようになります。

そして、私のconfig.xmlは次のようになります:

私のMaven構成

親切に私を助けてください。どこで間違いを犯したのかわかりません。

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

spring - HibernateTemplate の使用中にセッションを閉じる

次のコードを検討してください。

の主なタスクの 1 つはHibernateTemplate、セッションを透過的に開いたり閉じたりすることです。

上記のコードには 2 つのメソッドがsaveUser()ありdeleteUser()、質問したいのは次のとおりです。

1)HibernateTemplateこれら 2 つのメソッドに対して 2 つの個別のセッションを作成し、この場合、セッションの終了/フラッシュが発生したとき。

2)スプリングトランザクションと同じですか?春には、メソッド呼び出しとセッションの開始時にトランザクションがアドバイスされ、メソッド/トランザクションの境界でセッションが閉じられますか?

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

spring - persistence.xmlからのクラス宣言を再利用するにはどうすればよいですか?

私は、永続性とトランザクション管理にJPA/HIbernateとSpringを使用するプロジェクトに取り組んでいます。このアプリケーションには、同じデータベースサーバー(Sybase環境)の複数のカタログとスキーマからマップされたテーブルがあります。

インメモリデータベースを使用してこのアプリの自動テストの作成を開始するにはtest-persistence.xml、デフォルトからすべて同じエンティティを一覧表示する代替を作成する必要がありましたが、クラスのアノテーションからのスキーマ情報をオーバーライドpersistence.xmlする代替マッピングファイルを指定しました。orm.xml

テスト用のSpring構成の重要な部分は、次のとおりです。

HSQLFixesいくつかのタイプを作成するだけでいくつかのJDBCステートメントを実行するBeanはどこにありますか。

そして:でpersistence-tests.xml

persistence.xmlここで、とにリストされているクラスの重複を取り除きたいと思いtest-persistence.xmlます。これは、この2番目のファイルの生成を自動化できると感じたためです。

エンティティを追加/削除するときに両方のXMLファイルを変更する必要がないように、動的に実行するにはどうすればよいですか?

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

java - エンティティごとに 1 つの DAO - 参照を処理する方法は?

User と UserGroup という典型的な 2 つのエンティティを持つアプリケーションを作成しています。後者には、前者のインスタンスが 1 つ以上含まれる場合があります。そのために次の(多かれ少なかれ)マッピングがあります:

ユーザー:

ユーザー・グループ:

これで、これらのエンティティ (UserDao と UserGroupDao) ごとに個別の DAO クラスができました。私のすべての DAO には、次のように @PersistenceContext アノテーションを使用して EntityManager が挿入されています。

このレイアウトを使用して、新しいユーザーを作成し、既存のユーザー グループに割り当てます。私はこのようにします:

残念ながら、次の例外が発生します。

オブジェクトが保存されていない一時インスタンスを参照しています - フラッシュする前に一時インスタンスを保存します: xyzmodel.User.group -> xyzmodel.UserGroup

私はそれを調査しましたが、各DAOインスタンスに異なるentityManagerが割り当てられており(各DAOのエンティティマネージャーへの参照が異なることを確認しました)、ユーザーのentityManagerが渡されたUserGroupインスタンスを管理していないために発生すると思います。

ユーザーに割り当てられたユーザー グループを UserDAO のエンティティ マネージャーにマージしようとしました。これには 2 つの問題があります。

  • それでも機能しません-エンティティマネージャーは既存のユーザーグループを上書きしようとしており、例外が発生します(明らかに)
  • うまくいったとしても、関連するエンティティごとにマージコードを書くことになります

説明されているケースは、検索と永続化の両方が同じエンティティ マネージャーを使用して行われる場合に機能します。これは質問を指します:

  • 私のデザインは壊れていますか?この回答で推奨されているものとかなり似ていると思います。すべての DAO に対して単一の EntityManager が存在する必要がありますか (Web はそうではないと主張しています)。
  • または、グループの割り当ては DAO 内で行う必要がありますか? この場合、DAO に多くのコードを書くことになります。
  • DAO を削除する必要がありますか? はいの場合、データ アクセスを適切に処理するにはどうすればよいですか?
  • 他の解決策はありますか?

Spring をコンテナーとして使用し、Hibernate を JPA 実装として使用しています。

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

spring - Spring-orm を使用する目的は何ですか?

私のプロジェクトには、次の Maven 依存関係があります。

ORMにはiBatisを使用しています。

  • この依存関係を与える目的は何ですか?
  • Spring と iBatis の間のブリッジを作成する場合、これは必要ですか?
  • 一般的に、Spring と iBatis はどのようにリンクしましたか?

ご返信ありがとうございます。