Grails有一个关系真的是双向的吗?

Grails有一个关系真的是双向的吗?,grails,gorm,Grails,Gorm,我想对域关联进行反射,为RESTful WS(scaffolding)自动生成JSON/XML格式的类描述符文件。在HasOne的情况下(假定是双向的),我试图在关联对象中使用referencedPropertyName来显示反向键(这是WS必须显示的唯一信息) 然而,我发现hasOne关联没有正确初始化 下面是我使用Grails2.3.7进行的测试 我的域名是: class House { Long number Integer inhabitants static

我想对域关联进行反射,为RESTful WS(scaffolding)自动生成JSON/XML格式的类描述符文件。在HasOne的情况下(假定是双向的),我试图在关联对象中使用referencedPropertyName来显示反向键(这是WS必须显示的唯一信息)

然而,我发现hasOne关联没有正确初始化

下面是我使用Grails2.3.7进行的测试

我的域名是:

class House {

    Long number
    Integer inhabitants

    static hasOne = [ roof: Roof ]
    static hasMany = [ doors: Door ]

    static constraints = {
        roof nullable: true, unique: true
    }
}

class Roof {

    String color
    House house

    static constraints = {
    }
}
然后:

此测试失败:

Assertion failed: 
assert association.bidirectional
       |           |
       |           false
       test.House->roof
    at test.AssociationsSpec$_test_something_closure1.doCall(AssociationsSpec.groovy:26)
    at test.AssociationsSpec.test something(AssociationsSpec.groovy:23)
其他信息(println association.properties):


谢谢您

为了实现此双向性,您需要添加
静态属性to=[house:house]
,并从
Roof
域中删除您的
house-house
属性


您可以在中阅读有关belongsTo属性的更多信息。

为了实现此双向性,您需要添加
静态belongsTo=[house:house]
并从
Roof
域中删除您的
house house
属性


您可以在中阅读有关belongsTo属性的更多信息。

为了实现此双向性,您需要添加
静态belongsTo=[house:house]
并从
Roof
域中删除您的
house house
属性


您可以在中阅读有关belongsTo属性的更多信息。

为了实现此双向性,您需要添加
静态belongsTo=[house:house]
并从
Roof
域中删除您的
house house
属性


您可以在中阅读有关belongsTo属性的更多信息。

问题在于反向端未初始化


修复了:

问题是反向端未初始化


修复了:

问题是反向端未初始化


修复了:

问题是反向端未初始化


已修复:

已尝试,但结果相同。如果事实上,根据戈姆的说法,哈桑总是双向的。我还试着把班级之家{Door Door}和班级之门{static belongsTo=[House:House]}作为一个财产,这两个地方都不起作用。试过了,但效果相同。如果事实上,根据戈姆的说法,哈桑总是双向的。我还试着把班级之家{Door Door}和班级之门{static belongsTo=[House:House]}作为一个财产,这两个地方都不起作用。试过了,但效果相同。如果事实上,根据戈姆的说法,哈桑总是双向的。我还试着把班级之家{Door Door}和班级之门{static belongsTo=[House:House]}作为一个财产,这两个地方都不起作用。试过了,但效果相同。如果事实上,根据戈姆的说法,哈桑总是双向的。我还试着在班级之家{Door Door}和班级之门{static belongsTo=[House:House]}作为一个财产,这两个地方都不起作用。
Assertion failed: 
assert association.bidirectional
       |           |
       |           false
       test.House->roof
    at test.AssociationsSpec$_test_something_closure1.doCall(AssociationsSpec.groovy:26)
    at test.AssociationsSpec.test something(AssociationsSpec.groovy:23)
[list:false, type:interface java.util.Set, owner:org.codehaus.groovy.grails.domain.GrailsDomainClassPersistentEntity@149a797, class:class org.codehaus.groovy.grails.domain.GrailsDomainClassPersistentEntity$5, cascadeOperations:[ALL], inverseSide:test.Door->house, capitilizedName:Doors, bidirectional:true, referencedPropertyName:house, associatedEntity:org.codehaus.groovy.grails.domain.GrailsDomainClassPersistentEntity@99a9c3, mapping:null, circular:false, owningSide:true, name:doors, fetchStrategy:EAGER]

[capitilizedName:Roof, bidirectional:false, referencedPropertyName:null, circular:false, owningSide:true, name:roof, list:false, type:class test.Roof, owner:org.codehaus.groovy.grails.domain.GrailsDomainClassPersistentEntity@149a797, class:class org.codehaus.groovy.grails.domain.GrailsDomainClassPersistentEntity$4, cascadeOperations:[ALL], inverseSide:null, associatedEntity:org.codehaus.groovy.grails.domain.GrailsDomainClassPersistentEntity@16289cc, mapping:null, foreignKeyInChild:true, fetchStrategy:EAGER]