2011-12-27 25 views
0

我在域類中創建了一個(理論上)簡單的hasMany關係。我有兩個表和兩個外鍵之間的關係。表1的域對象如下:Grails has many error creating beans

Functionality{ 
String id 
static hasMany = [functionalityControllers:FunctionalityController] 
static mapping = 
{ 
    table 'schema.functionality' 
    id column:'FUNCTIONALITY_NAME', type:'string', generator:'assigned' 
    version false 
} 
} 

和域對象2

FunctionalityController 
{ 
    String id 
    String functionalityName 
    String controllerName 

    static mapping = 
    { 
    table 'schema.functionality_controller' 
    id column:'id', type:'string', generator:'assigned' 
    version:false 
    } 
} 

我遇到的問題是,當我有Functionality域對象的內部hasMany線,應用程序榮獲」開始(應用程序和集成測試)。錯誤是org.springframework.beans.factory.BeanCreationException導致Invocation of init method failed; nested exception is java.lang.NullPointerException

任何幫助,將不勝感激。 UPDATE: * 工作域 *:

class Functionality { 

String id 
static hasMany = [functionalityConts:FunctionalityCont] 
static mapping = 
{ 
    table 'schema.functionality' 
    id column:'FUNCTIONALITY_NAME', type: 'string', generator: 'assigned' 
    functionalityConts(column:'functionality_name') 
    version false; 
} 
} 

class FunctionalityCont { 

String id 
String functionalityName 
String controllerName 
static belongsTo = [functionality: Functionality] 
static contraints = { 

} 
static mapping = 
{ 
    table 'schema.functionality_controller' 
    id column:'id', type: 'string', generator: 'assigned' 
    functionality(column:'FUNCTIONALITY_NAME') 
    version false; 
} 
} 

回答

3

2分井的東西...

1.I'm不知道,但我想這與前綴「控制」,也許你的域類是負責的,這是因爲Grails是約定優於配置和慣例控制器類以控制器前綴結尾,並且位於控制器文件夾中,在這種情況下是令人困惑的

2.在GORM中,在這種情況下,對象之間的關係可以是單向或雙向的,您決定選擇一個,但在這兩種情況下都有不同的實現,類Functionality(btw缺少'class'字)通過hasMany與FunctionalityController有正確的關係,但Functionali tyController不知道的關係,這樣你就可以實現:

// For unidirectional 
static belongsTo = Functionality 
// For bidirectional 
static belongsTo = [functionality:Functionality] 
// Or put an instance of Functionality in your domain class, 
// not common, and you manage the relationship 
Functionality functionality 

所以檢查出來,並告訴我們,請... 問候

+0

這個答案我已經改變FunctionalityController之前與無變化FunctionalityCont 。此外,我已經嘗試了上述步驟,並得到了一個不同的錯誤,我將在Gregg的答案中發佈。 – Joseph 2011-12-28 14:19:12

+0

不是100%確定這是否是正確答案,因爲我認爲昨天我嘗試了同樣的事情,沒有運氣。它似乎現在按預期工作,無論是否有屬於。 – Joseph 2011-12-28 14:31:55

+0

我遇到的最後一個問題:正在生成的SQL引用了一個不存在的列。我如何指定要使用的列/字段? – Joseph 2011-12-28 15:02:19

3

嘗試增加

靜態屬於關聯= [功能:功能]

您FunctionalityController類。我懷疑你的錯誤比你所顯示的還要多,但一般來說hasMany需要一個擁有自己的一面。因爲那是外鍵實際存在的地方。

相關問題