[英]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.