問題タブ [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 - IN 式のリストとしてパラメーターを設定する
IN 式で使用するパラメータとしてリストを設定しようとすると、不正な引数の例外が発生します。インターネット上のさまざまな投稿は、これが可能であることを示しているようですが、私にとってはうまくいきません. ToplinkでGlassfish V2.1を使用しています。
他の誰かがこれを機能させることができましたか?
ここにいくつかのコード例があります:
およびスタック トレースの関連部分:
java - Glassfish+ToplinkEssentialsでレイジープロパティローディングを使用する方法
質問があります:
これで期待どおりの結果が得られますが、列の1つ(これを呼びましょうmassiveDescription
)が大きく、製品の完全なリストを照会しているため、除外したいと思います。
追加@Basic(fetch=FetchType.LAZY)
しましたgetMassiveDescription()
が、これによる違いはありません(生成されたSQLにはまだすべての列が含まれています)。
私は箱から出してすぐにGlassfishを使用しており、toplinkの必需品を使用しています。エージェントを構成するために何かしなければならないことがあるかもしれないと思ったので-javaagent:/path/to/toplink-essentials-agent.jar
、GlassfishWebインターフェースを介してJVMオプションを追加してみました。次に、例外が発生します。
jta.jar
したがって、GlassfishWebUIのクラスパスサフィックスボックスに追加する必要があると思います。それは私に別の例外を与えます:
だから今、私は瓶を追いかけています。同じ方法でクラスパスに追加toplink-essentials.jar
しますが、それでも同じ例外が発生します。
少し質問があります:
- glassfishは、レイジープロパティをすぐにロードするためのバイトコード拡張をサポートすることになっていますか?
- そうでない場合、それを構成する正しい方法がありませんか?
- これを実現するための「推奨される」方法は、プロジェクトを使用してクエリ内のエンティティの一部のみを選択することです。私はそれがもっと好きですが、それを行う方法についてのドキュメントを見つけることができません。と交換
select p
するselect p.id, p.name, ...
と奇妙なエラーが発生しますが、とにかく構文を推測しているだけでした。
jpa - EJB3/DB2 トランザクションがロールバックしない
Entities
、および のツリーがある状況がありSession Bean
ます。はSession Bean
単にエンティティを永続化またはマージし、問題のメソッドは としてマークされ@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
ます。
外部キー違反や null 非許容フィールドの欠落などにより、子エンティティの永続化/マージに失敗した場合、トランザクションはログでロールバックされるようにマークされ、EJBException
スローされます。トランザクション全体がロールバックされることを期待していましたが、代わりに、子エンティティの障害にもかかわらず、EJB セッション Bean 呼び出しが返された後に親エンティティがデータベースに表示されています。
他の誰かがこのような行動を見たことがありますか? 追加情報:
ありがとう。
java - Toplink および Struts 2 ベースのアプリケーションで、データをコミットした後でもデータベースからデータが消える
Struts 2 アプリケーションと tomcat 6.0.20 で実行されている toplink 永続化プロバイダーと、GNU/Linux マシン上の MySql 5.1.38 サーバーがあります。データをコミットした後、データを取得しようとすると、データベースから消えてしまいました。
クエリが実行された後にandem.commit()
を実行します。em.flush()
それらはどのように消えますか?すべての標準構成ファイルを使用しています。mysqlでピリオドwait_timeout
とピリオドを減らしました。interactive_timout
私の中でも使用autoReconnectforPools
していpersistence.xml
ます。
また、ユーザーがログアウトするたびにキャッシュを無効にします。
何か案は?
java - Toplink が null オブジェクトを保持しようとしています
内部に別のオブジェクト「コース」を含むオブジェクト「インスタンス」があります。新しいインスタンス オブジェクトを永続化しようとすると、Course が null の場合、次のエラーが発生します。
コースの注釈は次のとおりです。
null のものを永続化しようとする理由がわかりません。null の場合、そのフィールドをデータベースに null のままにしておく必要がありますよね?
java - EJB 3.0 および Toplink フレームワークに関するいくつかの制限事項
プロジェクトで EJB 3.0 を使用し、モデル層に Toplink フレームワークを実装しています。
EJBQL を使用してデータを処理する場合、いくつかの制限があるようです。
- 日、月、年などの日付の一部を検索するなどのデータ時間を処理できません
- from...to の中で datetime を見つけることができません
- 日時フィールドを比較できません
- SELECTステートメントからリストデータを取得したいので、エンティティではなくクラスをカスタマイズネイティブ選択クエリにマップできませんが、2つ以上のテーブルを結合してオブジェクト出力をクラスにマップする場合にクエリを実行すると、不可能です
@PersistenceContext プライベート EntityManager em;
em.createNativeQuery("SELECT a.usertype , b.username, b.userpass FROM tablea a, tableb b WHERE a.id = b.id,MyClass.class).getResultList
.....
クラスMyClass(){
文字列のユーザータイプ。
文字列のユーザー名。
文字列ユーザーパス。}
アイデアを教えてください。
少し早いですがお礼を!
jpa - JPA - persist() を呼び出さずに変更を保存する
JPA + Spring + EJB の Toplink 実装を使用しています。EJB の 1 つには、次のようなものがあります。
したがって、基本的にこのupdateUser()
メソッドは、指定された .xml でユーザーの名前を更新することになっていますuserId
。しかし、このメソッドの作成者は を呼び出すのを忘れていましたem.persist(u)
。
そして最も奇妙なことは、それがうまく機能することです。どうしてですか?em.persist()
呼び出さないem.merge()
と、変更がデータベースに保存される可能性がないことを100%確信していました。彼らはできますか?これが発生するシナリオはありますか?
java - GlassfishでEJB3キャッシュを強制的にクリアする
EJB3+Toplinkを使用するJavaで記述されたアプリケーションがあります。アプリとしてGlassfishを使用しています。サーバ。
キャッシュされたデータが古く、手動でキャッシュをクリアする必要がある場合があります。クリアする時間を設定できることは知っていますが、手動でクリアするボタンを作りたいと思います。できますか?
java - EJB3 - @Column(insertable="false") の質問
EJB3 と Oracle Express Edition DB を使用して J2SE アプリケーションを構築しています。
私の問題はそのようなものです-DBのテーブルと一致するプロジェクトにEntityBeanを設定しました。テーブルには、NULL 可能ではなく、デフォルト値を持つ列が含まれています。私が望むのは、EJB を使用してこのテーブルに新しいデータを永続化するときに、列の値がデフォルト値になることだけです。これは私がプロジェクトで設定する方法です:
ORM.XML ファイルにも設定します。
しかし、何らかの理由で、新しい EntityBean を作成し、名フィールドを設定せずにそれを永続化しようとすると、次の例外が発生します。
これは、私がそうしないように指示したにもかかわらず、永続化マネージャーが名フィールドを挿入しようとすることを意味します。
ここで何か間違っていますか?
ありがとう!
java - Toplink 例外、何が問題なのですか?
この EJB SQL ステートメントを生成すると、例外が発生します。
IDENT の意味は何ですか。私が間違っていることはありますか?