問題タブ [openjpa-maven-plugin]
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.
postgresql - JDBC URLをopenjpa-maven-pluginに渡して、PostgreSQLのデータを更新します
pom.xml
私が持っている(http://struberg.wordpress.com/2012/05/10/using-jpa-in-real-projects-part-1/から取得):
なんらかの理由で、URLが正しく渡されず、
目標org.apache.openjpa:openjpa-maven-plugin:2.2.0:sqlの実行エンハンサーが失敗しました:ドライバークラス「org.postgresql.Driver」およびURL「null」の接続を取得できませんでした。無効なURLを指定した可能性があります。(org.apache.openjpa:openjpa-maven-plugin:2.2.0:sql:enhancer:process-classes)
、などに置き換えてみましたjdbcUrl
。何も役に立ちません。ただし、URLを入力することはできますが、これは機能します。connectionProperties
url
URL
persistence.xml
ドライバー、ユーザー、およびパスワードは、Mavenプロパティから取得されます。ただし、このURLはDDLの生成にのみ使用されるため(データソースは実行時に別の方法で作成されます)、pom.xml
汚染せずにURLを含めることをお勧めしpersistence.xml
ます。これを行う方法はありますか?
openjpa - OpenJPA、Tomcat 7、Eclipse、およびMaven-エンチャンスは機能しません
そこで、OpenJPAを試してみることにしましたが、今のところ運がありません。http://struberg.wordpress.com/2012/01/08/jpa-enhancement-done-right/ org.apache.openjpa.persistence.ArgumentException:タイプ「classcom.MyClass」強化されていません。問題です。
私はANTにかなり慣れていないので、これを解決するためにこれらの手順を実行しようとしました。
Mavenプラグインを追加する
したがって、プロジェクトをクリーンアップしてからサーバーをクリーンアップしてから、mavenおよびmvn clean process-classesを使用すると 、指定したクラスが正常に拡張されます。
サーバーを起動し、Hibernateで機能する単純な永続化を試してください。
openjpa-2.2.0-r422266:1244990致命的なユーザーエラー> org.apache.openjpa.persistence.ArgumentException:タイプ「classcom.myproject.core.domain.MyClass」は拡張されていません。FailedObject:com.myproject.core.domain.MyClass@aecda16 [java.lang.String] at org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1823)atorg.apache.openjpa.meta.ClassMetaData。 resolve(ClassMetaData.java:1797)at org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:822)at org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:719)at org.apache .openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:643)at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:411)atorg.apache.openjpa.meta.MetaDataRepository。
率直に言って、私はそれを機能させたとしても、これで合理的なワークフローがどのように見えるかを本当に理解していません。多分別の戦略か何かを使用しますか?
いくつかのポインタとヒントが大好きで、もちろん問題を解決するのに役立ちます。
乾杯
struts2 - Maven Open JPAプラグインの拡張:機能しているようですが、エンティティが拡張されませんでした
Mavenプロジェクトをコンパイルすると、エンティティが拡張されていると表示されます。ただし、EntityManagerFactoryを介してデータベース接続を開始すると、次のコードでエラーが発生しました。em = factory.createEntityManager(); ネットのすべての手順を実行したと思いますが、このエラーが発生しました。助けてください..これに関するアドバイスはありますか?どうもありがとうございます。
エラーの原因となるコードのエラー部分。
Tihsは、コンパイルされたときのログです。
em.factory.createEntityManager();へのステップ時にエラーが発生しました。
POM.XML
Persistence.xml
これを構築するANTスタイルでは、これはBUILD.XMLにあるものです。たぶん私のエンハンサーはコンパイル後にエンハンスしませんでしたか?はいの場合、Mavenでコンパイル後の拡張をどのように行うことができますか?
antのエンティティを拡張するbuild.xml。
spring - OPEN JPA find() はデータベースからエンティティの値を取得できませんでした
ユーザー ログイン プログラムで遭遇した奇妙なシナリオがあります。
- レコードを挿入.. ユーザーID パスワードなど
- merge(); を使用してレコードを挿入します。
- 次に、IDE (Netbeans) を閉じます。
- IDE Netbeans を開き、サーバーを起動し、データベース接続を開始します。
- ログインブラウザを開きます。
- 挿入されたレコードを使用してログインします。
- 私のプログラムはテーブルのレコードを検出できませんでした。
デバッグ時に、find() の後、エンティティにデータが入力されません。エンティティにデータを入力する別の手順が残っている可能性があります。
ログインアクション
バリデータプログラム
/* * このテンプレートを変更するには、[ツール] | [ツール] を選択します。テンプレート * エディターでテンプレートを開きます。*/ パッケージ lotmovement.business.crud;
lotmovement.business.entity.UserProfile をインポートします。
/** * * @author god-gavedmework */ public class RecordExistUserProfile {
}
実在物
アドバイスどおりにトレースを使用します。これは SQL のログです。
これは記録です:
Persistence.XML を追加
問題の根本原因を発見しました。Spring Plugin でクラスをインスタンス化する方法についてです。
find() ステートメントを以下に変更すると、機能するようになりました。
しかし、Spring を使用してこれを初期化するにはどうすればよいですか? 以下のコードは動作しませんか?
spring - この種のクラス機能を注入する方法。スプリングオープン JPA
この種のステートメントにクラス UserProfile を挿入するにはどうすればよいですか? これは Struts2 - Spring プラグインを使用しています。
( UserProfile userProfile = em.find(UserProfile.class,"1");) ---> 春にこれを注入スタイルに変更する方法がわかりませんでしたか?
うまくいかない私の春の注射。セッターを使用して UserProfile エンティティを挿入しましたが、データを取得できなかったため、問題があると思います。
完全なクラス
jboss7.x - openJpa モジュールを使用すると、JBOSS で slf4j が機能しない
openJpa を使用しない場合、私の EAR アプリケーションは正常に動作します。オープンJPAを使用すると、「SLF4Jはクラスblaaaのロードに失敗しました」というメッセージが表示されます。pom.xml から提供する SL4J を使用するように openJpa モジュールを構成し、そのエラーを回避するにはどうすればよいですか?
JBOSS 7.1.1 を使用しています
pom.xml
.......
openjpa module.xml
jboss-deployment-structure.xml
エラー
osgi - コードを使用した OSGi 環境でのランタイム拡張
問題 : 1. JPA クラス/エンティティがバンドル 1 とバンドル 2 にあり、同じ永続化ユニットを使用しています。 2. バンドル 3 が、バンドル 1 とバンドル 2 のクラスに (DB API 抽象化のラッパー API) アクセスしようとしています。働く。
したがって、私が計画しているのは、コードを使用して JPA エンティティを強化することです。バンドル 3 が登場する直前に、バンドル 1 のこれらのエンティティを強化できます。ランタイム拡張が完了せず、バンドル 3 が登場するため、これを行う予定です。これは、テーブルが作成されないため、DB API (バンドル 3 API) の失敗につながります。
java - OpenJPA 2.x でのエンティティー拡張
Spring と OpenJPA を使用したプロジェクトに取り組んでいます。異なるプロジェクト/Maven モジュールで同じデータ ソースのエンティティを作成する必要があるユース ケースがあります。
アプローチ 1:
特定の機能を持つエンティティのセットを含む2つのモジュールを持つMavenプロジェクトコアエンティティがあります。
モジュール A - Enitity1、Enitity2、Enitity3 モジュール B - Enitity4、Enitity5、Enitity6
エンティティのセットごとに個別の永続ユニットと永続 xml を作成しました。エンティティがそれぞれの Maven モジュールで強化されている場合は正常に機能します。
アプローチ 2: このアプローチでは、上記のようにエンティティに対して個別のモジュールを使用しますが、唯一の違いは、エンティティの両方のセットに対して単一の永続化ユニットを使用していることです。両方のモジュールのエンティティを強化するために openjpa-maven-plugin を追加しました。この場合、maven プラグインを使用してエンティティを拡張すると、実行時にモジュール A のエンティティのメタデータが見つからないという例外が発生します。エンティティが拡張されると、何らかの理由でモジュール A のエンティティのメタデータが実行時に失われるためでしょうか。この問題は、モジュール B のエンティティでは発生しません。
この問題についていくつか質問があります。
1)同じデータ ソースに対して複数の永続化ユニットを使用することをお勧めしますか (アプローチ 1 で行ったように)?
2)単一の永続化ユニットと異なるMavenモジュールでエンティティを強化する方法はありますか?
3) eclipse と maven プラグインを使用する以外にエンティティ拡張の代替アプローチはありますか?
以下は、各モジュールの pom.xml のプラグインです。
java - XML レス @Configuration (persistence.xml なし) および openjpa-maven-plugin
私のアプリ (spring + jpa) を @Configuration ベースの spring のアノテーションに変換し、spring app context xml と persistence.xml を取り除こうとしています。ビルド時に使用する openjpa-maven-plugin 2.2.2 以外のすべての機能は、persistence.xml がエラーをスローしないと機能しません。
[エラー] プロジェクト myapp で目標 org.apache.openjpa:openjpa-maven-plugin:2.2.2:enhance (enhancer) を実行できませんでした: 目標 org.apache.openjpa:openjpa-maven-plugin:2.2.2 の実行エンハンサー:enhance に失敗しました: MetaDataFactory を構成できませんでした (conf.newMetaDataFactoryInstance() が null を返しました)。これは、構成プロパティーが見つからなかったことを意味している可能性があります。META-INF/persistence.xml ファイルがあること、それがクラスパスで使用可能であること、または構成に使用しているプロパティ ファイルが使用可能であることを確認してください。Ant を使用している場合は、タスクのネストされた要素の または 属性を参照してください。これは、OpenJPA ディストリビューション jar が破損している場合、またはセキュリティ ポリシーが厳しすぎる場合にも発生する可能性があります。
プラグインの構成は次のとおりです。
ただし、persistence.xmlが存在するが、空の永続ユニットしか含まれていない場合は機能します(3つ持っています):
したがって、openjpa-maven-plugin がこれから取得する可能性のある唯一の情報は、実際に必要な場合でも永続ユニット名です。
persistence.xmlなしでビルド時のopenjpaクラス拡張を実装する方法はありますか?