問題タブ [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.

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

java - TopLink でクライアント セッションを取得中にエラーが発生しました

私は独特の問題に直面しています。以下は、私が得ているエラーのスタック トレースです。助けてください。

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

java - エンティティクラス[...]の注釈付き要素[...]の@JoinColumnsが不完全です

私が使用しているのは、NetBeans IDE 6.7.1、GlassFish v2.1、Oracle 10g XE、JAVA 6 SE、JAVA5EEです。

@ManyToManyアノテーションに問題があります:

GlassFishv2.1.1の出力の一部

データベースを作成するスクリプトの一部:

Customerクラスのコード


誤ってコレクションにタイプとしてMovieではなくCustRentMovieクラスを入れたので、

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

java - JPA: Does EntityManager.find() always return the same object reference for the same key?

I've got an integration test of a DAO in which I use a shared EntityManager (via Spring, using SharedEntityManagerCreator). The test class is marked as @Transactional, as is the DAO method under test.

In both the test class and the DAO I'm retreiving a User entity as follows:

In the setup of my test I've modified the user object, but I wasn't seeing the modification in the DAO when the test came to run. It turned out that the two references did not refer to the same object; I proved this in my test class using:

This printed out false. I would expect that every call to an EntityManager using the same key would return the same object reference, and was surprised (and a bit alarmed!) to find out this was not the case. Can anyone shed any light on this? I've refactored my code so it's not actually an issue (the DAO shouldn't have had the User object in it anyway) but I'd still like to understand this better.

Thanks!

Java 1.6u22, Toplink Essentials 2.0.1, Spring 2.5.6

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

java - JPA オプティミスティック ロック バージョンの処理 - バージョン値をクライアント側に運ぶ必要がありますか?

サーバーからクライアントへ、またはその逆に JPA (toplink Essentials) を使用して、エンティティ クラスで楽観的ロック バージョン プロパティを処理する方法を知りたいです。

これがシナリオです。

  1. ブラウザのユーザーからサーバーにリクエストを送信し、個々のユーザー情報を編集するよう求めます。

  2. サーバーはリクエストを処理し、結果をブラウザに返します。サーバーコードは次のようになります。

    EntityManager em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager();

    ユーザー u = (ユーザー)em.find(User.class, myUserId);

    あなたを返します。//ブラウザへの応答

ここで、私の混乱は User table has "version"column foroptimistic lockingです。

つまり、バージョン フィールドの値は、クライアント (私または他のユーザー) が決して使用しない場合でも、クライアントに送り返されます。バージョン フィールドは、サーバー側のコードで使用されます。

バージョン番号をクライアントに送信するのは正しいですか? そうしないと、ユーザーが変更されたデータを含む Web ページの [UPDATE] ボタンをクリックした場合に、バージョン番号を確認する方法がわかりません。

さらに明確にする必要がある場合はお知らせください。

0 投票する
3 に答える
3206 参照

java - サーブレットレベルで OptimisticLockException をキャッチするには?

JPA toplink-essential を使用して、REST Web アプリを構築しています。

1 つのエンティティを見つけて削除するサーブレットがあります。

以下のコードでは、サーブレット レベルで楽観的ロック例外をキャッチできると思っていましたが、そうではありません! 代わりに RollbackException がスローされ、それがドキュメントの内容です:

しかし、Netbean IDE GlassFish ログを見ると、どこかで optimisticLockException がスローされます。私のコードに引っかからないだけです。(私のシステムの印刷メッセージは表示されないので、そこに入っていないと確信しています。)

各パッケージを (もちろん一度に 1 つずつ) インポートしようとし、catch 句でテストしましたが、どちらの場合も、ログ エラーに「楽観的例外」と表示されていても、catch ブロックには入りません。

では、OptimisticLockException がスローされる場所はどこですか?????

エラー メッセージ:

0 投票する
3 に答える
34480 参照

java - JPA persist() が自動インクリメントプライマリ ID を生成しないのはなぜですか?

JPA toplink-essentialSQL Server 2008を使用しています

私の目標は、テーブルに挿入されるデータの自動インクリメント主キー値を取得することです。JDBCでは、自動インクリメントプライマリIDのIDを提供するgetInsertedId()のようなメソッドがあります(ただし、insertステートメントが実行された後です)

JPAで、私@GenratedValue annotationはそのトリックを行うことができることを発見しました。


以下のコードを実行すると、自動インクリメントされたIDが返されますが、NULLが返されます...

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

java - JTA以外のJPA:コミットせずにEntityTransactionを安全に閉じることは可能ですか?

私はJPAToplinkを使用しています-必須でRESTfulWebアプリを開発しています。

ここで最初に言及することが1つあります。

JTAを使用しない

したがって、persistences.xmlはJTAを使用しないように定義されています。

これにより、エンティティマネージャーはexecuteUpdate()を使用してクエリをすぐに実行できなくなります。コミットするまで待機します。

JSONExceptionしかし、transaction.begin()の後に、またはindexOutOfBoundsExceptionのようなエラーがあるという大きな問題が1つあります。トランザクションは閉じられず、しばらく開いたままになります。

そのような場合、どういうわけかトランザクションを強制的に閉じることは可能ですか?

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

java - JPAトップリンク-プロセスの開始時にアクティブなトランザクションをチェックする必要はありますか?

プロセスの開始時にトランザクションが現在アクティブであるかどうかをチェックするサンプルをインターネットでいくつか見ました。

以下のコードは私のもので、ファクトリからEntityManagerを取得します。

begin()を実行する前に、トランザクションがアクティブであるかどうかを確認する必要がある理由がわかりません。

他のプロセスが同じEntityManagerインスタンスを使用している可能性があるためですか?(EntityManagerFactoryはシングルトンですが、EntityManagerはそうではありません)

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

java - Java Webアプリケーションのキャッシュデータ、データが古くならないように停止する方法!

こんにちは、問題が発生しています。私の (推測している) 永続化レイヤーが結果をキャッシュしているため、アプリケーションの外部からデータベースを更新すると、データが古いままになります。

ただし、半分の時間しかキャッシュしていません。これが理にかなっていることを願っています。

クラスがあります

これで、'provincename' などのクラス オブジェクトへの参照ではないデータを更新すると、そのデータはアプリケーションで問題なく、すぐに更新されます。ただし、「建物」などの内部オブジェクトはそうではなく、アプリを再デプロイするなどのハード リフレッシュを行うと、データが新鮮になります。

私はここのデータベースから私の州を取得します:

では、そのクラスの内部オブジェクト、つまり「建物」「人」も更新するように強制するにはどうすればよいでしょうか。

私の永続層はトップリンクの必需品であり、データが更新されないという以前の問題を修正しました。そして、その最初の投稿はこちらです(別のスタックオーバーフローページです)

助けてくれてありがとう。私の問題を十分に説明したことを願っています

[編集: このフレームワークを使用していない場合と同様に、データベース内のテーブルを結合して新しい変数にデータを再入力する方が簡単ですが、そうではありません]

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

java - パスにウムラウトがある PersistenceException

Toplink Essentialsを永続化プロバイダとして使用する Java デスクトップ アプリケーションで奇妙な動作が発生しました。

アプリケーションに必要なものすべてを含むディレクトリが 1 つあります。jar、lib フォルダ、および JavaDB データベースです。ディレクトリ全体が自己完結型です(異なるコンピューター間でも、問題なく何度かコピーしました)。

今日、もう一度コピーしたかったのですが、ターゲット フォルダーにドイツ語のウムラウト ü (html: ü) が含まれていました。

理由を見つけるのが困難な例外を除いて、アプリケーションの起動に失敗しました(以下を参照)。

もちろん、私は古い命名規則を知っていますが、私たちはすでにそれを置き去りにしていると思いました. だから私の質問は、ディレクトリの命名とは無関係に実行する方法があるかどうかです。アプリケーションをクライアントに提供し、インストールディレクトリにほとんど影響を与えたくないので、これは重要です。

システム: Windows 7、JavaDB 10.5.3

よろしくお願いします。