エンティティ間に 1 対多の関係があります - RentalUnit と Review 。次のように、同じレビューを異なる RentalUnit インスタンスに追加する場合を除いて、すべてのテストは正常に実行されます。
def review3 = Review.build().save(flush: true)
def rentalUnit2 = RentalUnit.build().
addToReviews(review2).addToReviews(review3).save(flush: true)
assert rentalUnit.reviews.contains(review2)
GORM とaddTo*
メソッドは、同じ Review インスタンスを追加しても気にしないように見えるので、ドメイン クラスに何かが欠けていると推測しています。それは何でしょう?
助けてくれてありがとう
ps
class Review {
String submittedBy
String content
String dateReceived
boolean isApproved
static belongsTo = RentalUnit
static mapping = {
content type: 'text'
}
static constraints = {
submittedBy blank: false, size: 3..50
content blank: false, size: 5..2500
}
}
class RentalUnit {
String name
String nickname
Address address
static hasMany = [reviews:Review]
static mapping = {
reviews cascade: "all-delete-orphan"
}
static constraints = {
name blank: false, unique: true, size: 4..10
nickname blank: false, size: 5..60
}
}