2014-11-17 25 views
0

我的代码看起来像Grails:是否属于为后面引用创建一个新列?

class Person { 
    Nose nose 
} 

class Nose { 
    static belongsTo = [person:Person] 
} 

据说这是为了创建鼻子上的“人”表的外键列,也为一人回参考列在“鼻子”表吧?

没有对我的“鼻子”表背面的基准产生,现在,我想知道如果这是正常的列...

http://grails.org/doc/latest/ref/Domain%20Classes/belongsTo.html (好像这是什么文档说,但我想我解释错了)

编辑: 我编辑的代码片段,因为我下来写了错误的东西(还没有今天的咖啡)

+0

'belongsTo [nose:Nose]'是一个错字(它应该是'belongsTo = [nose:Nose]')中缺少的等号?同样缺少“静态”? –

+0

我的不好,是我在我的实际代码中有belongsTo = [nose:Nose]。我现在就解决这个问题。 – user3600512

回答

0

您应该引用该负责人鼻子,不是鼻子本身,像这样:

class Person { 
    Nose nose 
} 

class Nose { 
    static belongsTo = [person: Person] 
} 

编辑后评论:啊,我明白了。现在我再次阅读您的问题,您是否期望在Nosenose_id列中有person_idPerson?因为这在GORM中绝不会发生,至少不会自动执行 - 对于您的模式,只有Person表包含每个文档的nose_id列。

+0

我两次写错了东西,抱歉。我有静态belongsTo = [人:人] – user3600512

0

Grails中,我们使用belongsTo级联的目的,你应该使用

class Nose { 
belongsTo = [person:Person] 
} 

,并在肯定的情况下,belongsTo后引用将被存储在鼻子具有person_id

+0

对不起abdullah,我在我的问题有多个拼写错误。我有静态belongsTo = [人:人] – user3600512

+0

你在这种情况下得到不正常的结果,如果是比什么?至少在 – Abs

+0

没有错误。当我将一个Person的实例赋值给一个鼻子实例并保存时,我没有得到任何错误,但是当我从数据库中获取该实例时,person_id被设置为null。我也看到鼻子表上没有person_id(后面的参考)列。 – user3600512

相关问题