問題タブ [deltaspike-jpa]

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

java - Deltaspike での JUnit テストのロールバック

Java SE プロジェクトで、CDI 用の OpenWebBeans で Apache Deltaspike を使用しています。@TransactionalJava EE プロジェクトで Spring Data JPA を使用しましたが、クラスまたはテスト メソッドの上にアノテーションを追加することで、データをデータベースにコミットしない単体テストをセットアップするのは簡単でした。ただし、Deltaspike で同等の手法を見つけることができませんでした。

各テストの後に手動でデータをロールバックするか、テストが実行されるたびにデータベースを削除して再作成する以外に、各単体テストが完了後にデータの変更をロールバックするように指定する方法はありますか?

私の単体テストは次のようになります。

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

java - DeltaSpike Test-Control - 永続ユニットが見つかりません

DeltaSpike Test-Control Module を使用して、開発中の新しい Maven アプリケーションの統合テストを作成しようとしています。

Wildfly 9 インスタンスにデプロイされています

簡単なテストケース:

私は次のようなpersistence.xml内部を持っていsrc/test/resources/META-INFます:

エンティティ マネージャーは、CDI プロデューサー メソッドによって公開されています。

問題は、EntityManagerFactory作成時に が null のままであることです。EntityManager

どんな助けでも大歓迎です。

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

cdi - Deltaspike データ (CDI + JPA) UTC でのカスタム java.time.ChronoLocalDateTime のカスタム PrePersistAuditListener および PreUpdateAuditListener

Wildfly 9.0.2.Final の Deltaspike バージョン 1.7.2

エンティティ Bean でJPA@EntityListeners(AuditEntityListener.class)と Deltaspike Data ( @CreatedOn@ModifiedOnおよび注釈) の監査機能を使用していますが、 + OR aを UTC の日付と時刻に変換@ModifiedByするカスタム実装があるという違いがあります。java.time.ChronoLocalDateTimeLocalDateTimeZoneOffsetZonedDateTime

UTCDateTime

エンティティ Bean のパーツ

エポック値がデータベースに保存されるため、UTCDateTime クラスのカスタム AttributeConverter もあります。

エンティティを永続化すると、次の例外が発生します (本当の原因の最後のビット)。

org.apache.deltaspike.data.impl.audit.PrePersistAuditListener独自のものを実装し、org.apache.deltaspike.data.impl.audit.PreUpdateAuditListenerそれらを使用して のインスタンスを作成する方法はありますUTCDateTimeか?

独自の EntityListener を作成して -->アプローチの次の場所でUTCDateTimeAuditListener使用するのは正しいでしょうか?@EntityListeners(UTCDateTimeAuditEntityListener.class)UTCDateTimeAuditListenerorg.apache.deltaspike.data.impl.audit.AuditEntityListener

次に、インスタンスの構築方法を知ってUTCDateTimeAuditEntityListenerいる正しい実装への参照を確実に取得するために、どこかで CDI 修飾子を使用する必要がありPrePersistAuditListenerますか?PreUpdateAuditListenerUTCDateTime

最後に、関連性があるかどうかはわかりませんが、org.apache.deltaspike.data.impl.audit.TimestampsProviderこのシナリオのどこに当てはまりますか?

アップデート

質問への回答が少し進みました。私がこれまでにやってきたこと。カスタムの必要はありませんAuditEntityListener。DeltaSpike が提供するもので十分です。

オブジェクトTimestampsProviderを処理できる の新しい実装を作成しました。UTCDateTime

beans.xml には、これも CDI @Alternative としてリストされています。

の内容apache-deltaspike.properties

問題は、両方のAuditProviderインスタンスが実行されることです。最初に実装 ( UTCDateTimeAuditProvider) が実行され、次にデフォルトが実行されます。TimestampsProvider

@Alternative 実装をアノテーションのみ、またはbeans.xmlのみ、およびクラスとbeans.xmlの両方で指定するさまざまな組み合わせを試しました。

TimestampsProvider@Alternative の実装後にデフォルトが実行される理由を知っている人はいますか?

Wildfly 9.0.2 の Deltaspike バージョン 1.7.2.Final with Weld 2.2.16 (SP1)

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

spring-data - オプションのパラメーターを使用した Spring Data JPA クエリ

以下のパラメーターに基づいてデータを取得する GET エンドポイントがあります。firstName は必須で、残りはすべてオプションです。

データベースクエリにはどのようにアプローチすればよいですか? 私はSring Data JPAを使用しています、私は試しました

findByFirstNameOrLastNameOrGenderOrCity(firstName,lastName,Gender,City)

エンドポイントのコンシューマーが値を送信していない場合、firstName 以外の値のいずれかが null になる可能性があるため、@Query アノテーションを使用したネイティブ SQL クエリが機能するかどうかは不明です。親切に助けて

0 投票する
0 に答える
470 参照

java - Deltaspike リポジトリ トランザクションはコミットされるが、Java SE の DB には何も保持されない

Java SE でエンティティを永続化するために DeltaSpike リポジトリを使用しており、ファイル ベースの H2 データベースを使用しています。問題は、コンソールにエラーがないにもかかわらず、データベースに何も保持されないことです。スタンドアロン クライアントを使用してデータベースの内容を確認しました。また、永続化が完了した直後にリポジトリを使用してコンテンツを取得しようとしましたが、結果は得られませんでした。

エンティティ マネージャー (純粋な JPA) を使用して直接永続化しようとすると、永続化され、GUI クライアントでファイルを開くとレコードが表示されます。

プロジェクト構造は次のようになります。

ここに画像の説明を入力

の依存関係は次のpom.xmlとおりです。

persistence.xmlファイルは次のようなものです:

エンティティ マネージャーのプロデューサー クラス:

エンティティ クラス:

リポジトリ クラス:

リポジトリを呼び出すサービス Bean:

アプリケーションのメイン クラス:

(おそらく) DeltaSpike 構成で何が見落とされているか知っている人はいますか? それとも、そのような構成で予想される動作ですか?