問題タブ [toplink-essentials]
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.
java - Toplink の重要なクエリ ヒントを使用する場合にクエリ タイムアウトを指定する
Glassfish v2 について、Web を検索しましたが、TopLink の重要なクエリ ヒントを使用するときにクエリ タイムアウトを指定する方法が見つかりません。EclipseLink に移行する別のオプションがありますが、それは現実的ではありません。
http://forums.oracle.com/forums/thread.jspa?threadID=974732&tstart=-1で解決策を試しました が、タイムアウト値を設定できる DatabaseQuery は実際には Toplink 用であり、TopLink の必須ではないようです。
クエリ ヒント以外に、このタイムアウト値を JDBC ドライバーに指示する方法はありますか? システムベースではなく、クエリベースで行う必要があります(これは、DISTRIBUTED_LOCK_TIMEOUTの値を変更するだけです)
java - JPAインジェクションが@PersistentUnitで機能しない理由
それは疑問の余地があります(struts 2 Beanは作成されません)私はTomcatの下の非常に単純なWebアプリケーションでstruts2+トップリンクを使用しています。このページでは、反復タグを使用したいと思います。そのため、エンティティのコレクション(Entity)を解決するファクトリ(SomeFactory)を宣言しました。記事ごと:http ://download-uk.oracle.com/docs/cd/B32110_01/web.1013/b28221/usclient005.htm#CIHCEHHG 必要なのは宣言だけです:
なにが問題ですか?web.xmlで何かを見逃している可能性がありますか?インジェクションを許可するためにWebアプリケーションのトップリンクを事前に初期化する方法は?
exception - (JPA/Toplink) ネットワーク エラー IOException: アドレスは既に使用されています: 接続
以前は機能していたJPAプロジェクトがあります。今月、データベースにいくつかのデータを追加しました。通常のジョブを実行すると (前の月に実行していました)、次のエラーが発生します。
例外 [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007)): oracle.toplink.essentials.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Network error IOException : アドレスは既に使用されています: 接続エラー コード: 0
カウンターを出力して、呼び出しているほとんどのメソッドを含む LocalPersistenceFacade をチェックしたところ、そこで閉じられた接続と開いた接続の正確な数が得られました: 457 です。その後、ジョブがクラッシュしました。通常、457 ではなく 601 まで行く必要があります。
データベース側では、クラッシュの可能性に関する情報はありません。すべてが正しいように見えますが、私の Java コードは別のことを言っています。
誰かアイデアがありましたか?
よろしく、ジャン
jpa - c3p0 または DBCP 接続プールを追加するには?
スタンドアロンの c3pO または DBCP 接続プールをトップリンク ベースの JPA プロジェクトに追加する方法を教えてください。
persistence.xml ファイルがあり、データベースにクエリを実行するたびに、次のようにしています。
EntityManagerFactory emf = this.getEntityManagerFactory();
// 必ず persistence.xml を使用してファクトリをセットアップします
EntityManager em = emf.createEntityManager(); ...
外部接続プール マネージャと Toplink の間のブリッジはどこに構築すればよいですか? アイデアやリンクは大歓迎です。
よろしく、ジャン
java - Regarding Toplink Fetching Policy
I'm working for a Swing Project and the technologies used are netbeans with Toplink essentials, mysql.
The Problem I'm facing is the entity object dosn't get updated after insertions take place while calling a getter collection of the foreign key property.
Ex: I have 2 tables Table1,Table2. I have sno column, id column as a primary key in Table1 & is Foreign Key in Table2. Through find method I just get the particular sno object(existed in table 1) set some values persisted to table2 & committed the transaction.
When I select the same sno object through find method & gets its collection from Table2 through the getTable2Collection() of the bean(as it is already created in bean by toplink essential) I'm unable to get the latest added record except that all other records of it are displayed. After I close the application & opening it then the new record gets reflected while calling the same sno through the above process.
I came to know that this is a kind of lazy fetching and there should be some way of fetch policy to be changed to make the entity object get updated with the changes. So Please help me in this regard.
Regards,
Chandu
java - エンティティはデフォルトで jpa にキャッシュされますか?
データベースにエンティティを追加すると、正常に動作します。しかし、リストを取得すると、古いエンティティが取得されます。追加した新しいエンティティは、アプリケーションをアンデプロイして再度デプロイするまで表示されません。これは、エンティティがデフォルトでキャッシュされることを意味しますか? ただし、persistence.xml などのファイルでエンティティをキャッシュするための設定は行っていません。
私は、flush()、refresh()、およびmerge()を呼び出してみました。それでも、古いエンティティのみが表示されます。何か不足していますか?私を助けてください。
spring - JPAIndirectSetの変更がSpringフロントエンドに反映されない
編集:解決しましたが、今何が違うのかわかりません。誰かが違ったことが起こったことを説明できれば、私はそれをいただければ幸いです。
現在の動作方法は、次のように、子ではなく親のみをマージすることです。
今は機能しているようですが、以前の試みでは機能しなかったのに、なぜこれが機能するのかよくわかりません。
元の試み/質問:
SpringJPAとIndirectSetsに問題があります。以下に定義する2つのエンティティ、親と子があります。新しい子を作成して既存の親にリンクし、すべてをデータベースとWebインターフェイスに反映させようとしているSpringフォームがあります。何が起こっているのかというと、それはデータベースに入れられますが、UIは一致していないようです。
次のようにOneToMany関係で相互にリンクされている2つのエンティティ:
そしてもちろん、それぞれにさまざまなシンプルなプロパティがあります。さて、問題は、Springインターフェースからこれらの単純なプロパティを編集すると、すべてが美しく機能することです。これらのタイプの新しいエンティティを永続化できます。JPATemplateを使用して、たとえばすべての親(getJpaTemplate()。find( "select p from Parent p"))またはIDによる個々のエンティティを検索すると表示されます。別のプロパティ。
私が遭遇している問題は、現在、親のページからのリンクを介して既存の親にリンクされた新しい子を作成しようとしていることです。コントローラーの重要な部分は次のとおりです(わかりやすくするために、ここではJPA fooをコントローラーに配置しました。実際のJpaDaoSupportは実際には別のクラスにあり、適切に階層化されています)。
私が言ったように、私はフォームに目を通し、子の新しい値を入力することができます-親の詳細は表示されません。コントローラに戻ると、通過して基盤となるデータベースに保存されますが、インターフェイスがそれを反映することはありません。アプリを再起動すると、すべてがそこにあり、適切に入力されます。
これをクリアするために何ができますか?余分なマージを呼び出したり、更新(トランザクション例外が発生した)を試したりしましたが、独自のデータベースアクセスコードを記述するだけでは不十分でした。すべてのクラスに適切なequals()とhashCode()があり、完全なJPAデバッグをオンにして、適切なSQL呼び出しを行っていることを確認し(Childテーブルへの新しい呼び出しを行っていないようです)、ステップ実行しましたデバッガーを介して(予想どおり、すべてIndirectSetsにあり、親の保存と表示の間に、オブジェクトは新しいメモリアドレスを取得します)。私の次のステップは何ですか?
java - セットから削除されたアイテムに対してJPAがnullを返す
これは数日前の私の質問に関連しているかもしれませんが、この部分をどのように説明するかさえわかりません。(これはまったく異なる親子関係です。)
私のインターフェースには、1対多の関係にあるそれぞれの属性(Attribute)と有効な値(ValidValue)のセットがあります。Spring MVCフロントエンドには、管理者がこれらの値を編集するためのページがあります。送信された後、これらのフィールドのいずれか(<input>タグとして)が空白の場合、次のようにValidValueオブジェクトを削除します。
問題は、データベースが適切に更新されている間、次にAttributeオブジェクトをクエリすると、それらのValidValueセットに追加のエントリ(null)が返されるため、次に値を反復処理するときにディスプレイでは、中央に余分な空白の値が表示されます。これは、マージまたは検索の時点、「クエリReadObjectQuery(entity.Attribute)の実行」の時点で発生することを確認しました。
(ApplicationDataService内の)データベースを変更するために使用しているコードは次のとおりです。
エンティティクラスの関連部分は次のとおりです。
java - Geronimo を使用して「entityManagerFactory」を取得できませんでした
Springフレームワークの勉強を始めたばかりです。現在の目標は、Bean から Geronimo サーバー上の JPA (TopLink** プロバイダー) を介してデータベースにアクセスすることです。しかし、entityManagerFactory を取得するという問題を克服できません。
私が得る例外:
java.lang.IllegalStateException: ClassLoader [org.apache.geronimo.kernel.config.MultiParentClassLoader] は「addTransformer(ClassFileTransformer)」メソッドを提供しません。カスタム LoadTimeWeaver を指定するか、Spring のエージェントで Java 仮想マシンを起動します: -javaagent:spring-agent.jar
私がそれにアクセスする方法:
「-javaagent:spring-agent.jar」オプションを使用せずに誰かが私を助けてくれれば、とても感謝しています。
解決策を探しています。最初の試み。
「axtavt」のアドバイスに従い、Tomcat で Web アプリケーションに特別なクラス ローダーを指定する例を見つけました。そのためにcontext.xmlファイルを使用します。私の Geronimo は Tomcat を使用していますが、context.xmlの実装に成功しませんでした。次の マニュアルで述べられているように、 Geronimoのcontext.xmlの代替手段はgeronimo-tomcat.xmlですが、その構文ではクラスローダーを変更する可能性はありません。まだ助けが必要です!
jpa - JPAはオブジェクトグラフでゆっくり挿入します
JPAを使用してラージオブジェクトグラフをカスケード保存しようとしています。たとえば(私のオブジェクトグラフは少し大きいですが、十分に近いです):
だから私は100以上のBのコレクションを持つAを永続化しようとしています。コードはただです
問題は、それが遅いということです。私の節約は約1300msかかります。生成されているSQLを調べましたが、非常に非効率的です。このようなもの:
現在、永続性プロバイダーとしてtoplinkを使用していますが、eclipselinkとhibernateも試しました。バックエンドはoracle11gです。問題は、実際にはSQLをどのように組み合わせるかです。これらの各操作は一括ではなく個別に実行されるため、appserverとdbサーバーの間に5ミリ秒のネットワーク遅延がある場合、200回の個別操作を実行すると1秒追加されます。シーケンスのallocationSizeを増やしてみましたが、それは少ししか役に立ちません。また、直接JDBCをバッチステートメントとして試しました。
私のデータモデルの場合、直接JDBCバッチとして実行されるのに約33ミリ秒かかります。Oracle自体は、100以上の挿入に5ミリ秒かかります。
とにかく、休止状態のバルクインサートのようなベンダー固有のものを掘り下げることなく、JPA(私は今1.0で立ち往生しています...)をより速くする方法はありますか?
ありがとう!