問題タブ [spring-data-commons]

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

spring-boot - Spring Data REST / Spring Data Commons ドメイン イベント

このブログとこの参考資料を読み、Spring Data Commons ドメイン イベントは、Spring Data REST AbstractRepositoryEventListener イベント (つまり、onBeforeSave、onAfterDelete など) 内に適用すると機能しないと判断しました。

人:

PersonCompletedEvent:

更新: PersonH​​andler のコメントを読んでください。これが、この例でアプリケーション イベントが機能しない理由です。

PersonH​​andler:

抽象エンティティ:

パーソンリスナー:

これを広範囲にデバッグしましたが、 DomainEvents がRepositoryEntityControllerEventPublishingRepositoryProxyPostProcessor$EventPublishingMethodInterceptorの間のどこかにドロップされているようです。

実際に起こっていることは、エンティティの別のインスタンスが実際に傍受されており、その時点で DomainEvents が存在しなくなっていることです。@AfterDomainEventPublication clearDomainEvents() が現時点で呼び出されていないことを確認できます。これにより、一時的な domainEvents と関係があると思われます。

Spring Data REST のRepositoryEntityControllerは次のようになります。

1 でコメントされた行を実行した後、私の domainObject には domainEvents があり、それが 2 でコメントされた行、invokeSave に入ります。ブレークポイントがRepositoryEntityControllerEventPublishingRepositoryProxyPostProcessor$EventPublishingMethodInterceptorでキャッチされると、実際にはオブジェクトの別のインスタンス (別のオブジェクト ID) であり、欠けているのは domainEvents だけで、何も発生しません。

更新: 以下の私のコメントを読んでください。エンティティが切り離されているため、機能していません。

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

spring-data - Spring Data Page がソートを JSON に正しくシリアライズしない

この問題は Spring-Data リリース 2 で発生しました。最新バージョン 1.13.9 (およびそれ以前) では問題なく動作します。

コントローラーコード:

Spring-Data 2 スタイルでも同じ:

構成:

また、Java 構成と XML 構成を使用して、Spring Boot を使用しない単純な Spring アプリケーションを試しました。結果は同じです:

Spring-Data のバージョンを 1.X に変更すると、オブジェクトの並べ替えに対して正しい JSON 応答が得られます。

すべてを試したようですが、変更ログで並べ替えの変更に関する通知は見つかりませんでした。Spring JIRA ではそのような問題は見つかりませんでした。

問題は、次のような並べ替えで spring-data 2.X libs JSON を取得する方法です。

それ以外の: