0

我有两个域类:Car 和 Driver。我想制作一个 gsp 视图,在一个列表中显示汽车和驾驶员信息,该列表或多或少是一个默认的脚手架列表。例如:

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 视图中做什么才能使加入列表发生(并且仍然使用分页)?

4

1 回答 1

1

如果 aDriver只能有一个Car,则需要 aDriver来引用并为 aCar渲染脚手架。listDriver

要调整列表列,您必须grails generate-views.

如果 aDriver可以有很多Cars,并且您不想将Car_Driver表拉入可见域模型(它没有自己的域含义),请list使用 SQL 查询结果作为cardriverInstancesList. 就像这里:Grails 中的 SQL/数据库视图

只需检查这result是一个PagedResultList. 如果没有,您可以PagedResultList手动创建一个,它很容易从一个Listand构造totalCount,您可以使用 SQL 找到它。

于 2011-06-02T10:13:32.467 回答