Как получить список объектов из объектов, у которых есть два вложенных объекта в спящем режиме? - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть таблица Product, Location и ProductLocation. После получения объекта Location я хочу получить список всех продуктов, которые принадлежат этому местоположению. Я попытался настроить критерии, но он возвращает объект ProductLocation вместо списка Product. У меня вопрос, как я могу получить список продуктов из объектов ProductLocation?

List<Product> findByLocation(Location location){

        def criteria = ProductLocation.where {
            eq('location', location)

        }
        criteria.list()
    }



class Product {

        String title
        String imagepath
        String description
        Category category

        static belongsTo = [locations: Location]

        static mapping = {
            version false
        }

    static constraints = {
        title nullable: false
        imagepath nullable: false
        description nullable: true
    }

    static hasMany = [locations: Location]


}

class ProductLocation {

    Product product
    Location location


    static mapping = {
        version false
    }

    static constraints = {

    }

    static belongsTo = [products: Product, locations: Location]


}

class Location  {

    Company customer
    Location parent
    String name
    String description
    String objectnumber
    String address
    String zipcode
    String province
    String city
    String country
    Long longitude
    Long latitude
    Integer order
    String timezone
    AlertConfiguration alertConfiguration
    boolean deleted
    LocationType type


    static hasMany = [products: Product]

    static mapping = {

    }


}

1 Ответ

0 голосов
/ 06 сентября 2018

Попробуйте следующее:

List<Product> findByLocation(Location location){
    ProductLocation.createCriteria().list {
        eq('location', location)
        projections {
            property( 'product' )
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...