1
Grailsバージョン:3.1.2ドメインオブジェクトコンストラクタでgrailsサービスを呼び出せますか?
ドメインオブジェクト(VersionedDomainClass)の新しいインスタンスを作成するたびに呼び出すバージョン管理サービス(VersionService)があります。私はVersionedDomainClassがサービスを呼び出す対処したいと思いますが、私はこれを行うにしようとすると:
class VersionedDomainClass {
transient def versionService
short businessVersion
VersionedDomainClass() {
this.businessVersion = versionService.getNextVersion(this.class)
}
}
コンストラクタが起動時に呼び出される、versionServiceはまだnullで、その時点で私はNPEを取得:
Caused by: java.lang.NullPointerException: Cannot invoke method getNextVersion() on null object
起動時にインスタンス化されたVersionedDomainClassは必要ありません。それは春がそれはおそらくドメインクラスの独自のisntanceを作成しようとしているように見えますか? Service Beansが作成されるまでSpringがこれをやらないようにする方法はありますか?
代わりにコンストラクタを使用しての、あなたがbusinessVersion
を初期化するために
beforeInsert()
を使用することができます
ビンゴです!ありがとう。 –