Grails Webアプリケーションを使って作業していて、Grailsサービスを使用すると非常に奇妙なことが起こります。ですから、Grailsのサービスについてもっと理解してもらうために、これに関するいくつかの質問をしたいと思います。これは私のために非常に役立ちます(そして多分他人のために^ _ ^)。前もって感謝します。サービスがtrue =静的トランザクションで構成されている場合、任意の方法が汚れているとHibernateセッションにロックされているオブジェクトと起動後Grailsサービスに関するいくつかの質問
、それはDBにすべてのデータ変更をフラッシュするのだろうか?
static transactional = true
ではなく、クラスレベルで@Transactional
アノテーションを使用できますか?そして、私はちょうど彼らが(クエリ、見つける)DBからデータを読み取るようにいくつかの方法で@Transactional(readOnly = true)
を置く可能性がありますか?トランザクション継承はどうですか?親サービスが
static transactional = true
に設定されていて、子サービスが@Transactional
注釈(クラス上)および一部の@Transactional(readOnly = true)
(一部のメソッドで)を所有している場合、子の親からメソッドを呼び出すとどうなりますか?トランザクションは、抽象サービスで動作しますか?私が知っているように、抽象サービスでBeanを初期化することはできませんし、アプリケーションを起動するときにGrailsコンテキストにいくつかの違いがあります。
恐ろしいです!あなたの明確な答えをありがとうございました。親サービスAはクラスレベルで@Annotationとマークされ、AのメソッドdoParent()はreadOnly = trueであり、子サービスBはトランザクションに関する特定の構成を持っていません。なぜBからdoParent()を呼び出すのですか、私はreadOnlyを強制しますが、それでもデータをフラッシュしますか? –