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

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

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



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']
    }
}

谢谢!

最佳答案



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

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

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

10-14 15:47