問題タブ [spring-data]

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

java - Spring 3.1 の Java 構成で spring-data-mongodb リポジトリを構成する

@Configuration新しい Java ベースのサポートでこれを行う方法はありますか?

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

mongodb - Spring Data MongoDB 戻りオブジェクト コンバーター

50 の異なるフィールドを含む大きなドキュメントがあります。このドキュメントを保存するときに必要なフィールドはわずかです。Spring Data MongoDB でそのドキュメントをフェッチするとnull、オブジェクトから値フィールドを削除できますか?

保存中、Spring Data MongoDB は同じことを行い、そうでない値のみを保存しますnull

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

spring - Spring Container の外で Spring Data JPA をどのように使用しますか?

Spring Bean コンテナーを使用せずに、DAO プロキシー (別名リポジトリー) を生成できるように、Spring Data JPA オブジェクトを手動で接続しようとしています。

必然的に、なぜこれをやりたいのかと聞かれます: 私たちのプロジェクトは既に Google Guice を使用しており (そして GWT で Gin を使用している UI で)、別の IoC コンテナー構成を維持したくない、またはプルインしたくないためです。結果として生じるすべての依存関係。Guice の を使用できる可能性があることはわかってSpringIntegrationいますが、これは最後の手段です。

オブジェクトを手動で接続するためにすべてが利用できるようですが、十分に文書化されていないため、苦労しています。

Spring Data ユーザー ガイドによると、リポジトリ ファクトリをスタンドアロンで使用することが可能です。残念ながら、この例はRepositoryFactorySupportどちらが抽象クラスであるかを示しています。いくつかの検索の後、私は見つけることができましたJpaRepositoryFactory

JpaRepositoryFactoryトランザクションを自動的に作成しないことを除けば、実際にはかなりうまく機能します。トランザクションは手動で管理する必要があります。そうしないと、データベースに何も永続化されません。

@Transactional問題は、注釈が自動的に使用されないことであることが判明しました。TransactionInterceptor

ありがたいことに、JpaRepositoryFactoryはコールバックを取得して、返される前に、生成されたリポジトリ プロキシにさらに AOP アドバイスを追加できます。

これは物事がうまくいっていないところです。コードでデバッガーをステップ実行すると、TransactionInterceptor確かにトランザクションが作成されますが、間違っていEntityManagerます。Spring はEntityManager、現在実行中のスレッドを見てアクティブを管理します。はTransactionInterceptorこれを行い、スレッドへのアクティブなEntityManagerバインドがないことを確認し、新しいスレッドを作成することを決定します。

ただし、この newは、作成されてコンストラクターにEntityManager渡されたものと同じインスタンスではなく、. 問題は、どうすれば と を同じように使用できるかということです。JpaRepositoryFactoryEntityManagerTransactionInterceptorJpaRepositoryFactoryEntityManager

アップデート:

これを書きながら、問題を解決する方法を見つけましたが、それでも理想的な解決策ではないかもしれません. この解決策は別の回答として投稿します。私が解決した方法よりも、Spring Data JPA をスタンドアロンで使用するためのより良い方法についての提案をお待ちしております。

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

java - SpringDataJPAを使用したHQLの継承

単一のスーパークラスから継承するクラスのセットがあります。

次に、各Aaaa、Bbbb、CcccにメソッドfindByTagが含まれている必要があります。問題は、私がそれを一般的に定義することができないということです。次の例では、Aaaaの特定のfindByTagを定義しています。

スーパークラスは@MappedSuperclassであり、データベースに独自のテーブルがないことに注意してください。

各クラスでその名前に置き換えられるクエリで、ある種の「スーパー」を使用したいと思います。

2番目の問題は、@ElementCollectionを強制的にフェッチする方法がわからないことです。クエリでは常に「フェッチに参加」と明示的に言う必要があります。フェッチされていない場合、トランザクションが終了すると、明示的にフェッチしなかったオブジェクトにアクセスできなくなります。(LazyFetchの例外...)

ありがとう

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

json - findAndUpdate MongoDBRepository

私の仕事は、種類の findAndUpdate メソッドを定義できるようにする MongoDBRepository を拡張するリポジトリを作成することです。MongoOps とテンプレート アプローチは許可されていません。これは私のMongoDocumentがどのように見えるかです:

ご覧のとおり、一部の属性は単なるクラス値ですが、他の属性はリストです。メッセージング サブシステムから受け取った更新要求は次のとおりです。

要求データのタイプが単なるクラス値 (attributetype1 や 2 など) の場合は、それを更新する必要があります。更新データがリストとして保存されるタイプの場合は、追加する必要があります。

この場合、あなたは何を提案しますか?

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

spring - @DBRef フィールドのクエリ

使用: Spring 3.1.0.RELEASE、Spring Data MongoDB 1.0.0.RELEASE

次のように定義されたドキュメント クラスがあります。

このリポジトリ定義を使用して、特定のユーザーのすべての MyDoc インスタンスを選択しようとしています:

残念ながら、これは何も見つかりません。コードは正常に実行され、例外はありませんが、残念ながら何も見つかりません。

では、DBRef されたフィールドでドキュメントを選択する適切な方法は何ですか?

注意この質問を見たことがありますが、DBRef されたエンティティのプロパティでフィルター処理したくないため、私のユース ケースはより単純です。

更新: リポジトリが DBRef による検索をサポートするまで、単純な回避策を使用することにしました。MongoTemplate を使用して、 com.mongodb.DBRefをフィールド条件として使用するクエリを作成します。正常に動作します。

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

spring - Spring Batch の Mongo リポジトリ?

Spring Batch 用の Mongo ベースのジョブリポジトリはありますか? そうでない場合、実装する必要がありJobInstanceDaoますか? この取り組みに役立つ例や既存の作品はありますか?

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

java - 注釈パラメーターの継承

Javaインターフェースで次のパラメーターを継承しようとしています(Spring Data JPAの例ですが、質問は一般的に注釈へのパラメーターに関するものです):

継承されたインターフェイスでは、次のようにすることができます。

残念ながら、変数「type」の文字列値が変数に関連付けられるのが遅すぎるため、注釈が作成されたとき、値はまだ null です。コンパイラに子インターフェイスから変数を関連付けさせることはできますか?

ありがとう

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

jersey - Spring Data により、Spring は JAXRS の @Provider を見つけることができなくなりますか?

Spring + Jersey を使用して API サービスを構築しています。最近、Spring Data をサーバーに取り込もうとしています。実行中のコードでリポジトリを実際に使用していないため、 app.xml に1行追加するだけです:

しかし !API が機能していないことに気付きました

xml の「jpa:repositories ...」行を削除すると、すべて正常に動作します。そして、すべてのプロバイダー クラスは spring によって登録されます。

しかし、XML に「jpa:repositories...」行を追加すると、「ルート リソース クラス」のみが登録されます。

すべての JAXRS の @Provider (s) がありません!

Spring-Data のバグかどうかはわかりません。そして、それを解決する方法は?

環境 :

サーバー:resin-4.0.25

関連する依存関係:

( jersey-json を追加しようとしましたが、まだ機能していません)

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

mongodb - mongodbの合計ページ数で埋め込みページングを実装する

埋め込まれたページングの状況に関連する古い質問を確認しました。スライスを使用した埋め込みページングは​​正常に機能しますが、ページ全体のソリューションがまだ不足しているため、サーバー側でコメントの合計サイズを取得できるかどうか疑問に思います。

ドキュメント全体をアプリにフェッチして手動でカウントすることなく、サーバーに埋め込まれた配列のサイズをクエリまたはカウントする方法はありますか?

これに対して2つのクエリを実行してもかまいません。1つはコメントのページング用、1つはコメントの合計を取得するためのものです。1つのクエリでこれを実行できれば、それは驚くべきことです。

ちなみに、私はjavaドライバーとspring-datamongodbを使用しています。

あなたの考えを共有してください。ありがとう !