問題タブ [grails-services]
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.
spring - Grails Hibernate セッションまたは Spring トランザクションがドメイン検証エラーを破壊する
したがって、私の問題は、ページにレンダリングする前に、検証エラーがドメイン オブジェクトから削除されていることです。過去にこのエラーを修正したと思っていましたが、再び忍び寄ってきました。
これが私の元の実装を見てください。tripService.stepData(trip)
が呼び出されたときにエラーがクリアされていました。
編集-ページが hasMany 関係に追加されたときにのみこの問題が発生したことはありません。
コントローラ -
サービス -
だから私はオンラインでいくつかの読書をしました.2年前のようなフォーラムの投稿の誰かが、休止状態に何かがあると言っていました..バグの可能性があります...わかりませんが、彼らの提案はうまくいきました。提案は、コントローラーをwithTransaction
次のようにラップすることでした。
これは私にとってはうまくいきました。tripService
今の問題は、ビューに再度呼び出す taglib があることです。その呼び出しが行われると、検証エラーがクリアされます。これは本当にイライラしています。これを解決するために私ができることについて誰か考えがありますか?
編集:taglibから呼び出されるサービスメソッドの追加:
grails - grails サービスのトランザクション メソッドが成功したかどうかを知る方法は?
私はこのようなものを持っています:
}
トランザクショナル メソッドが成功したかどうかを知りたいのですが、ドメイン オブジェクトごとにエラー プロパティを確認したくありません。ロジックには多くのドメイン クラスが含まれていて難しいからです。
grails - 環境固有の Grails サービス構成
環境固有の値を使用して Grails サービスを構成する最良の方法は何ですか? 次の 2 つのオプションがあると思います。
- サービスクラス内から grailsApplication の値にアクセスする、または
- Config.groovy または resources.groovy の bean クロージャーでサービス Bean を構成します。
#1 (サービスで grailsApplication にアクセスする) の方法を示すスタックオーバーフローやその他の場所での投稿をいくつか見ました。そのような投稿の 1 つに、Grails アプリケーション構成をサービスに注入する があります。
ただし、これにより、サービスと Grails との不必要な結合が生じると思います。これは、値を構成/注入するのではなく、pojo で Spring の applicationContext にアクセスすることに似ていませんか? また、これをサービスクラスの単体テストで機能させるにはまだ運がありません。
2 冊の本に、プロパティを注入する例があります (アプローチ #2)。The Definitive Guide to Grails 2 の第 10 章の「Services in Action」というタイトルのセクションには、これを行う方法が示されていますが、環境固有の値はありません。本の Groovy and Grails Recipes のセクション 16-2 にも resources.groovy を使用した例が示されていますが、私はまだそれを機能させることができませんでした。
次のブログ投稿にも良い例がありますが、環境固有ではありません: http://ldaley.com/post/1253952347/getting-more-out-of-property-override-configuration。Grails Reference の第 15 章もこれらの例と一致しており、環境ごとに Bean のプロパティを設定する方法を示しています。
ただし、どちらのアプローチの例も、何らかの方法でそれを行うための意見や合理性を示していません。どちらのアプローチにも長所と短所は本当にありませんか? インジェクション アプローチは単体テストが容易であり、春のやり方とより一貫性があるのではないでしょうか?
ネイサン
datasource - Grails サービスに dataSource を注入する問題
サービスで次のことをしようとすると、問題が発生します。
このコードを実行すると、「null 以外の接続を指定する必要があります」というエラーが表示されます。私が読んだことから、上記のコードは機能するはずだと思います(これはユニットテストではありません)...明らかに、Grailsサービスに関して何かが欠けていますか?
ここで助けてくれてありがとう、
grails - REST サービスとして公開する Grails サービス メソッド
私はGrailsが初めてです。UrlMapping.groovy ファイルと GET/POST/PUT/DELETE http メソッドを使用して、コントローラーのアクション/メソッドを RESTFull サービスとして公開する方法を見てきました。
以下は私の質問です。
1. サービス クラス メソッド (Grails アプリの /service フォルダー) を RESTFull サービスとして公開し、上記のコントローラー アクションにアクセスしたのと同様の方法でそれらにアクセスする方法はありますか。
2.サービス クラス メソッドを SOAP サービスとして公開する方法はありますか?
grails - grails Service クラスで g.formatNumber を使用する方法
サービスで g.formatNumber を使用したいのですが、オンラインで入手した以下の方法を試しました。これは機能していません。エラーが表示されます"Cannot invoke method formatNumber() on null object"
。コードは以下のとおりです
これを行う方法。
grails - com.easytha.Student エントリの Grails-null id (例外が発生した後にセッションをフラッシュしないでください)
私はすでにこの問題についていくつかのスレッドを見てきましたが、誰も救うことができませんでした。私の DomainClass には次のものがあります
Elasticsaerch はサービスであり、静的一時リストに追加しました。index メソッドを正常に呼び出した後、この例外がスローされるようです
これは index メソッドのコードです
「object indexed successfully」がコンソールに出力されます。
bootstrap.groovy には次のものがあります
アップデート
私はどれがうまくいったか試しStudent.withNewSession { elasticSearchService.index(this) }
ました。
hibernate - org.hibernate.StaleObjectStateException: ドメイン クラスの保存中
次のコードがあります
そして、上記のコードの最後の行で次の例外をスローします
私は同じ問題について議論しているいくつかのスレッドを見てきstudentInstance.withTransaction
ましstudentInstance.withTransaction
た.
20 ~ 30 人のユーザーがこのコードを同時に呼び出した場合にのみ発生するため、これは間違いなくスレッドの問題です。