但是,如果要审查的租赁单元具有一对多的双向关系,我有以下测试通过。如果要查看的租赁单元具有单向的一对多关系,则会失败。怎么来的?以及如何使它也通过单向?
测试(斯波克):
def "one-to-many relationship between RentalUnit and Review"() {
when:"adding shared review will result referenced by last rental unit"
def review3 = Review.build().save(flush: true)
def rentalUnit1 = RentalUnit.build().addToReviews(review3).save(flush: true)
def rentalUnit2 = RentalUnit.build().addToReviews(review3).save(flush: true)
rentalUnit1.refresh()
then:
!rentalUnit1.reviews.contains(review3)
}
代码:出租单元类是相同的 - 单向和双向
class RentalUnit {
...
static hasMany = [reviews:Review]
static mapping = {
reviews cascade: "all-delete-orphan"
}
...
}
在单向情况下,Review 类不包含与租赁单元相关的任何内容。在双向情况下,Review 有额外的一行:
static belongsTo = [rentalUnit: RentalUnit]
(完整代码,在我的博客中)