問題タブ [micronaut-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 に答える
2142 参照

java - 結合されたエンティティからのプロパティを使用した Micronaut Data DTO プロジェクション

JPA で Micronaut Data を使用しており、2 つのエンティティがあります。最初のものはRecipe次のとおりです。

2番目のものは、次のものParseErrorを指しRecipeます:

ParseErrorここで、API で DTO にプロパティを提供したいと思いますが、Recipeエンティティ全体ではなく、ManyToOne と OneToMany の関係が含まれているため、この場合は必要ありません。そこで、そのためにプロジェクション DTO を作成しました。

listAll()にメソッドを追加しましたParseErrorRepository

しかし、Micronaut Data はネストされたエンティティからプロパティを投影できないか、DTO またはリポジトリ メソッドで何かを見逃しているようです。

ParseErrorRepository.java:22: エラー: リポジトリ メソッドを実装できません: ParseErrorRepository.listAll()。プロパティのレシピ ID がエンティティに存在しません: ParseError

私も作成しようとしましたRecipeDto

それに応じて更新されましたParseErrorDto

再び成功しません:

ParseErrorRepository.java:22: エラー: リポジトリ メソッドを実装できません: ParseErrorRepository.listAll()。タイプ [RecipeDto] のプロパティ [レシピ] は、エンティティで宣言された同等のプロパティと互換性がありません: ParseError

Micronaut Data は、DTO プロジェクションによってこのユース ケースを処理できますか? そうでない場合、Micronaut Data でそれを解決する方法はありますか?

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

spock - 各実行前に MicronautTest データソースのセットアップがクリーンでない

フレームワークをテストするためだけに、このmicronautアプリケーションで基本的なデータベース検索を実行しています。テストセットアップでh2データベースを実行して、flywayデータベース移行でアプリケーションをセットアップしました(本番環境ではpostgresqlを使用します)。これは、スキーマを正しく設定するために使用されます。

私のリポジトリは jpa の Micronaut データを使用して作成されているため、micronaut の完全なコンテキストでテストを実行しないと、リポジトリを作成する方法がわかりません。

私のテストでは、いくつかのスポック テストを実行する前に、setup メソッドにデータを挿入しようとしました。セットアップが 1 回実行されると、次のテスト実行のためにクリーンなデータソースで開始されることを期待します。データは一意の制約に違反するため、実行中の 2 番目のテストのセットアップで SQL エラーが発生して失敗します。これが私のコードです:

delete ステートメントを実行するクリーンアップ ブロックを作成できると思いますが、各テスト実行前にデータソースがクリーンであると予想されるため、これは最後の手段だと思います。