grails - 将JoinTables呈现为Grails中的列表

标签 grails view controller gsp jointable

我有两个 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,它很容易从ListtotalCount构造,您可以在SQL中找到它们。

关于grails - 将JoinTables呈现为Grails中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210890/

相关文章:

grails - '*' {}构造在Grails 3中意味着什么

javascript - 将文本框与 onclick 事件的响应绑定(bind) - jquery

javascript - fullcalendar.js 如何在周 View 中提前 +4 天显示当前日期并延迟 -2 天

javascript - 在更新我的 Angular View 之前,如何操作从 JSON 响应派生的对象?

grails - Grails 2.5.2中名为 “identity”的成员的约束在模拟测试时生成异常

grails - 登录后Grails中的Spring Security重定向到IP

sql-server - SQL查询当前不支持返回别名

view - 从一个 View 过渡到另一个 SwiftUI

flash - 对QSPI FLASH的XIP(eXecute In Place)功能的困惑

unit-testing - 如何使用 Mocha 在 Angular.js 中测试使用 angular.module().controller() 创建的 Controller