問題タブ [spring-orm]
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 - トランザクションマネージャーはトランザクションを想定しません
私は問題に直面しています私は猫のしっぽを捕まえる方法を本当に知りません(あなたが私に冗談をくり抜いたら:o))
私は戦争中のWebアプリを持っており、Tomcatにデプロイします。戦争には4つの瓶が含まれています。4つのjarには、4つのapplicationContext、4つのentityManager、および4つのTransactionManagerがあります。
このように宣言します(番号1 ..を変更します):
コンテキストは次のようにロードされます:
私の問題は、BOが3の場合、トランザクションがデータソース2で開いていることを発見しました。
さらに、永続化を行うと、次のメッセージが表示されます。
AbstractSaveEventListener-進行中のトランザクションがないため、ID挿入を遅らせます
しかし、jar 1を単独で起動すると(たとえば)、すべてが完全に機能しています。
啓蒙に感謝します。
java - @Transactionalを使用したクラス階層性問題
プロジェクトのセットアップ:Spring 3.0.5 / JPA 2 / Hibernate / @Transactional
いくつかの異なるデータソース(したがって異なるトランザクションマネージャー)を使用しますが、多くの機能が再利用されるため、共通のサービス基本クラスがあります。
そのため、カスタムアノテーションを使用してこれを解決すると考えました。すべてのメソッドを抽象基本クラスで定義し、TransactionManagerごとに1つの空の実装クラスを作成します。
今問題は次のとおりです。
でAbstractFallbackTransactionAttributeSource
、これは実行されているルックアップです。
最初にメソッドがチェックされ、次にメソッドを宣言するクラス(およびその祖先)がチェックされます。しかし、私たちのコンテキストでは、カスタムアノテーションは、上に移動しても見つからないサブクラスに存在します。
では、どうすればこの問題を解決できますか?
[春のコミュニティフォーラムでもこの質問をしました]
spring - LocalContainerEntityManagerFactoryBeanとLocalEntityManagerFactoryBeanの違いは何ですか?
Spring FrameworkのLocalContainerEntityManagerFactoryBeanとLocalEntityManagerFactoryBeanの違いを誰かが説明できますか?
java - Criterionを効率的に使用してエンティティを削除するにはどうすればよいですか?
現在、一時的なものを作成し、をCriteria
使用して一致するエンティティリストを取得してから、リストを次Criteria.list()
の場所に渡す必要があります。HibernateTemplate.deleteAll()
Criterionで削除することはできますが、最初にリストをロードせずに削除できますか?
たぶん、私は基準をHQLに変換する必要があり"delete from Foo where " + criterion.toHQL()
ますか?
背景
後で解析されてCriteriaコンポジションに変換される検索フォームがあります。
検索結果は、Criteria.list()を使用して取得されます。
さて、疑問が浮かびました。すべての検索結果を削除したいと思います。検索フォームをもう一度解析する必要がありますが、別の方法でHQL文字列に変換する必要がありますか?基準を再利用できれば、もっと簡単になります。
CriteriaはWHERE句と最も同等であるため、(そうではありませんか?)Criteriaを削除に使用できなかった理由はわかりません。
hibernate - I18Nサポート用の動的に変更されるセッションファクトリとTxmManager
ここで構築しているSpring-GWTアプリケーションに特有の問題があります。UTF-8をサポートしないWE8ISO8859P1文字セットでエンコードされたOracleDBがあります。したがって、AL32UTF8文字セットで新しいDBを構築しています。残念ながら、DBAは既存のDBを新しいDBに移行することを望んでおらず、英語のデータについては古いDBに、ラテン語のデータについては新しいDBに到達する必要があります。
メソッド/クラスレベルで@Transactionalアノテーションがあり、sessionFactoryがDAOに注入されて休止状態に接続します。ユーザーがラテン語を選択したときにこれらを再利用したい
@Transactional(changeThisDynamically)
つまり、注入されたTransactionManagerとSessionFactoryは、ユーザーがラテン語/英語を切り替えるときにAjax呼び出しを介して動的に変化する必要があります。
これはできますか?これを解決するための最良のアプローチは何ですか?
考え直してみると、BeanのApplicationContextAwareを作成してこれをdaoに設定することで、ラテン語のセッションファクトリを取得できましたが、これは良いアプローチですか?そして、TransactionManagerで何をしますか?
ありがとう、
grails - Grailsでgormカスケードアップデートを使用するにはどうすればよいですか?
私のドメイン間の関係:
カスケード更新のコード:
まず、 sampleAttributesをcardcatLaneにリンクし、次に更新するカートリッジを見つけて(cardcatLaneにリンクします)、最後に保存します。
このコードはデータを挿入するだけです(例:sampleAttributesとcarditchLaneデータをカートリッジに追加します)。
私の問題は、(INSERTではなく)UPDATEを探していることです。
カスケード更新を管理するにはどうすればよいですか?
gormは更新と挿入をどのように区別しますか?
更新をカスケードするためのより効率的な方法はありますか?
java - Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError: NULL エラー
Spring 3.0.5 を 3.1 GA に移行しました。初期化中に実行時エラーが発生しました:
これが私のxmlです。
これは何java.lang.NoSuchFieldError: NULL
についてですか?3.0.5 では問題ありません。
ibatis - IbatisのSqlMapClientとSqlMapSeesionの違いは何ですか?
ibatis-sqlmap-2.3.4 を読むと、どちらも SqlMapExecutor を実装していることがわかりました。
SqlMapClientImpl は、スレッド セーフを提供する localSqlMapSession を挿入します。
しかし、spring2.5.6 では、SqlMapClientTemplate の execute メソッドは、次のように SqlMapClientImpl を使用します。
openSession メソッドは、毎回新しい SqlMapSessionImpl を返します。
私の質問は次のとおりです。
SqlMapClientTemplate が sqlMapClient の代わりに sqlMapSeesion を使用するのはなぜですか?
sqlMapClient の localSqlMapSession が SqlMapClientTemplate で使用されないのはなぜですか? 次のように使用します。
SqlMapClient と SqlMapSeesion の違いは何ですか?
spring - java.lang.ClassNotFoundException:org.hibernate.engine.SessionFactoryImplementor
hibernate 4.1.0.Final with spring 3.1.1.RELEASEに移行しようとし ています。以下は、hibernateの構成です。
しかし、アプリケーションを実行しようとすると、次の例外が発生しました。
このエラーが発生する理由と修正方法を教えてください。ありがとうございます。
java - HibernateTemplate の使用時に列名を取得できません
次のように、Spring-orm と HibernateTemplate を使用してネイティブ SQL クエリを実行しています (参照用の DB は Oracle 11 です)。
クエリを正常に実行し、結果を返すことができました。しかし、結果の列名も取得する方法がわかりませんでした。このアプローチでは不可能だと思い始めています。私の問題は、ユーザー入力からのクエリを実行する必要があり、パラメーター名についての手がかりがないことです。
何か案は?