簡體   English   中英

Grails Map域類的列名問題

[英]Grails Map domain class column name problems

我有一個MS SQL DB(無法更改),其中包含3個表:

contact  
id, name, number
c_group  
id,name,email
contact_group  
id, contact_id, group_id  

在Grails中,我有3個域類:

class Cgroup {  
    String name
    String email

    static constraints = {
    }

    static mapping = {
        table name: "c_group"
        version false
    }   
}
class Contact {
    String name
    String number

    static constraints = {
        name nullable:false
    }

    static mapping = {
        version false
    }
}
class Contact_group {
    Cgroup cgroup
    Contact contact

    static constraints = {
    }

    static mapping = {
        version false
        cgroup_id column: "c_group_id", sqlType: "int" 
    }
}

我正在嘗試使用:-創建列表

def contactInstance = Contact.get(id)  //I have previously got the id

List userGroupList = Contact_group.createCriteria().list(params) {            
    eq("contact", contactInstance)
}

它拋出一個錯誤

無效的列名“ cgroup_id”。堆棧跟蹤如下:

如您所見,由於表已在數據庫中從group重命名為c_group ,因此我試圖映射正確的列名(在Contact_group域類中),並且由於某種原因而使事情復雜化,我決定調用該域我的Grails應用中的Cgroup類。 (如果需要,我可以更改此設置)

因此,我現在對如何最好地創建列表有些困惑。 有什么建議或指示嗎?

在映射中,您應指向類屬性( cgroup_id應為cgroup ,因為這是您在域中命名的名稱。)

另外,表中的列名不是id c_group_id因此您應將列設置為id

static mapping = {
    version false
    table name: "contact_group"
    cgroup column: "id", sqlType: "int"        
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM