grails - Grails-需要根据联接表上的条件限制提取的行

标签 grails join groovy dns gorm

我有两个域汽车驱动程序,它们具有多对多关系。该关联在表tblCarsDrivers中定义,这毫不奇怪,两个表的主键都BUT另外还删除了另一个 bool(boolean) 字段。问题就在这里。当我在域Car上查找/获取查询时,无论它们在tblCarsDrivers中的删除状态如何,都会获取所有相关驱动程序,这是预期的。

I need to put a clause/constraint to exclude the deleted associations from the list of fetched records.



PS:我尝试在joinTable名称中使用关联域CarDriver,但这似乎不起作用。显然,它只期望表名,而不是映射。

PPS:我知道在映射表中除了映射键之外还有其他字段是不自然的,但这是我得到的方式,无法更改。

汽车 Realm 的定义如下-
class Car {
    Integer id
    String name

    static hasMany = [drivers:Driver]

    static mapping = {
        table 'tblCars'
        version false
        drivers joinTable:[name: 'tblCarsDrivers',column:'driverid',key:'carid']
    }
}

谢谢!

最佳答案

I know its unnatural to have any other fields besides the mapping keys in mapping table but this is how I got it and it cant be changed.



这一点也不罕见。如果要存储有关关系的属性,这是显而易见的解决方案。您应该恢复关联域CarDriver,该域除了具有与Car和Driver的关系外,还具有删除的属性,然后,您应该能够编写一个查询,其中排除已删除的驱动程序。

here提供了如何定义这种映射的综合示例。

关于grails - Grails-需要根据联接表上的条件限制提取的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676502/

相关文章:

sql - 使用/JOIN 查询更快地删除

grails - 与namedQuery以多对多关系获取随机记录

groovy - Groovy 有像 Javascript 那样的对象解构吗?

grails - 在 Grails 应用程序中成功保存到数据库后,页面刷新 (F5) 会更改屏幕上的数据

Grails为什么响应不起作用并且什么也不渲染?

json - Grails模型和子模型的JSON响应(一对多)

c++ - 在 Windows 中加入等效项

php - mysql 查询从 10,000 条数据中检索太慢(查询优化)

selenium-webdriver - Groovy用单引号在xpath内传递字符串值-Katalon

grails - Grails 3.0.1-文件夹丢失了吗?