我想只创建一个类的一个对象,并一遍又一遍地重用同一个对象.有没有有效的方法来做到这一点.
我怎样才能做到这一点?
我的三个班级互相联系。
最初,我没有分页地构建查询,并且所有搜索结果都很好。但是现在我需要分页,并且不想打扰我的初始查询模式。有什么办法可以使我得到明显的结果。
Class Department{
int id;
String name;
static hasMany = [courses:Courses]
}
Class Courses{
String courseName;
String courseCode;
static hasMany = [student:Student]
static belongsTo = [department:Department]
}
Class Student{
String studentName;
String address;
static belongsTo = [courses:Courses]
}
//controller
def list = Department.createCriteria.listDistinct{
if(params.id){
and{eq{"id",params.id}}
}
and{
courses{
if(params.courseName){
and{eq("courseName",params.courseName)}
}
}
and{
student{
if(params.studentName){
and{eq("studentName",params.studentName)}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法为您提供实际的表和域,但是关系与上面几乎相同。对于确定的结果,它确实工作得很好,但无法分页。我尝试了多种解决方案,但返回错误。到目前为止,我还没有记录任何错误。我已经知道listDistinct不能用于分页参数。和列表未提供不同的参数。
我尝试投影,但无法像以前一样检索所有属性。有没有解决的办法。因为我需要从这三个表中的所有位置搜索所有可能的属性。我是否需要将所有查询切换到另一种方法?