0

CarとDriverの2つのドメインクラスがあります。ほぼデフォルトのスキャフォールドリストに見えるリストに車とドライバーの情報を表示する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

Driverが1つしか持てない場合は、を参照し、のスキャフォールディングをレンダリングする必要Carがあります。DriverCarlistDriver

リストの列を微調整するには、を行う必要がありますgrails generate-views

Driverに多くCarsのを含めることができ、テーブルを表示可能なドメインモデルにプルしたくない場合(Car_Driver独自のドメインの意味はありません)、listSQLクエリの結果をとして使用してスキャフォールディングのようなアクションを実行しますcardriverInstancesList。ここのように:GrailsのSQL/データベースビュー

resultそれがであることを確認してくださいPagedResultList。そうでない場合は、手動で作成できます。これは、SQLで見つけることができるaと、PagedResultListから簡単に作成できます。ListtotalCount

于 2011-06-02T10:13:32.467 に答える