我有一个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' .. Stacktrace如下:
正如您所看到的,我正在尝试映射正确的列名称(在Contact_group
域类中),因为该表已从group
重命名为c_group
数据库,只是因为某些原因使问题复杂化我决定在我的Grails应用程序中调用域类Cgroup
。 (如果需要,我可以改变它)
所以,我现在对如何最好地创建列表感到困惑。有什么建议或指示吗?
答案 0 :(得分:1)
在您的映射中,您应该指向类属性(var previousPosition
$(window).scroll(function(){
var currentScrollPosition=$(window).scrollTop() + $(window).height()
if (currentScrollPosition>previousScrollPosition) {
console.log('down')
}else if(currentScrollPosition<previousScrollPosition){
console.log('up')
}
previousScrollPosition=currentScrollPosition
});
应该是cgroup_id
,因为这是您在域中命名的。)
此外,表格中的列名称为cgroup
而不是id
,因此您应将列设置为c_group_id
。
id