我有两个 Realm 类:汽车和驾驶员。我想制作一个gsp View ,在一个或多或少是默认脚手架列表的列表中显示汽车和驾驶员信息。例如:
Make Model Driver Age
------------------------
Chevy Nova Joe 20
Chevy Nova Mike 30
Chevy Nova Sally 40
这是域类:
class Car {
String make
String model
static constraints = { }
static hasMany = [ drivers : Driver ]
static mapping = {
drivers joinTable: [name: 'Car_Driver', column: 'DRIVER_ID', key: 'CAR_ID']
}
}
class Driver {
String name
int age
static constraints = { }
}
造一辆车,并给它几个司机:
def car = new Car(make: 'Chevy', model: 'Nova')
def driver1 = new Driver(name: 'Joe', age: 20)
def driver2 = new Driver(name: 'Mike', age: 30)
def driver3 = new Driver(name: 'Sally', age: 40)
car.addToDrivers(driver1)
car.addToDrivers(driver2)
car.addToDrivers(driver3)
car.save()
我需要在CarController和/或gsp View 中执行什么操作才能使联接列表发生(并且仍可使用分页)?
最佳答案
如果Driver
只能有一个Car
,则需要一个Driver
来引用Car
并只为list
渲染脚手架Driver
。
要调整列表列,您必须 grails generate-views
。
如果Driver
可以有许多Cars
,并且您不想将Car_Driver
表拉入可见域模型(它没有自己的域含义),请使用SQL查询结果作为list
进行类似于脚手架的cardriverInstancesList
操作。就像这里:SQL/Database Views in Grails。
只需检查result
是 PagedResultList
即可。如果没有,您可以手动创建一个PagedResultList
,它很容易从List
和totalCount
构造,您可以在SQL中找到它们。
关于grails - 将JoinTables呈现为Grails中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210890/