单向与双向一对多级联不同

时间:2012-11-12 20:24:25

标签: hibernate session grails gorm

但是,如果要审核的租赁单元具有一对多双向关系,则会通过以下测试。如果要审核的租赁单元具有单向一对多关系,则会失败。怎么会?以及如何通过单向传递?

测试(spock):

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)
    } 

代码: Rental Unit类是相同的 - 单向和双向

class RentalUnit {
 ...
    static hasMany = [reviews:Review]

    static mapping = {
        reviews cascade: "all-delete-orphan"
    }
...
}

在单向情况下,Review类不包含与Rental Unit相关的任何内容。在双向案例中,评论有额外的一行:

static belongsTo = [rentalUnit: RentalUnit]

(有关完整代码,请参阅我的blog

0 个答案:

没有答案