coldbox-modules / quick

A ColdBox ORM Engine
https://quick.ortusbooks.com
MIT License
23 stars 19 forks source link

relationship constraints don't propagate through HasManyThrough #241

Open davidAtInleague opened 8 months ago

davidAtInleague commented 8 months ago

Constraints that are applied through a hasMany are not applied when that hasMany is used as part of a hasManyThrough.

Minimal repro as follows.

component /*Foo*/ extends="quick.models.BaseEntity" accessors=true {
    function a_() {
            // we expect this to fail, when run, because someJunkColumn is not a valid column name in the db
        return hasMany( relationName = "a_", localKey = "x", foreignKey = "x" ).whereRaw("[someJunkColumn] = 999");
    }
    function a() {
        return hasManyThrough( [ "a_", "alike" ] )
    }
}

getInstance("Foo").with("a_").firstOrFail() // as expected, a database error: invalid column [someJunkColumn]
getInstance("Foo").with("a").firstOrFail() // no error, because additional constraints on a_ aren't applied

quick 6.2.0, quick 7.2.0

elpete commented 3 months ago

hasManyThrough has changed a lot from Quick 8 on. Can you test if this is still a problem on Quick 8+?