これが私のドメインクラスの定義です:
class Profile {
PhotoAlbum photoAlbum
static constraints = {
photoAlbum(nullable:true)
}
}
class PhotoAlbum {
static hasMany = [photos:Photo]
static belongsTo = [profile:Profile]
}
class Photo {
static belongsTo = PhotoAlbum
}
コントローラーには、インスタンス化されたプロファイル ドメインがあります。ドメインは null の photoAlbum で始まります。最初の写真を追加したい場合、photoAlbum でヌル ポインター例外が発生します。
Photo photo = new Photo()
profile.photoAlbum.addToPhotos(photo)
これを行い、ヌルポインタ例外を回避するためのグレイルな方法は何ですか:
Photo photo = new Photo()
if (!profile.photoAlbum) { profile.photoAlbum = new PhotoAlbum) }
profile.photoAlbum.addToPhotos(photo)
photoAlbum が null の場合、最初の写真オブジェクトを grails に追加しようとすると、grails は新しいものを作成するだけだと思っていたでしょう。上記の 3 行のコードは機能しますが、2 行のコードで同じことを達成するためのより良い方法があるかどうか疑問に思っています。