Искам да използвам наследено свойство в наименувана заявка на извлечен екземпляр, за да мога да предоставя персонализирано сортиране на резултатите. Получавам грешка.
package com.example
class Ticket {
// User is defined elsewhere
static belongsTo = [user : User]
String idNumber
}
class SeasonTicket extends Ticket {
// some custom properties go here
static namedQueries = {
locateOrderedSeasonTicketsByUser { user ->
// all derived instances are in the same table, hence return only the correct derived instances
eq("class", "com.example.SeasonTicket")
// return a match on user
user {
idEq(user.id)
}
// implement custom order
order "customProperty"
}
} << Ticket.namedQueries
}
Последният ред позволява да се използват всички наследени именувани заявки, дефинирани в базовия клас.
Получавам следната грешка при изпълнение на интеграционен тест, който извиква:
SeasonTicket.locateOrderedSeasonTicketsByUser(someUserInstance)
Няма подпис на метод: com.example.User.call() е приложим за типове аргументи: (com.example.SeasonTicket$__clinit__closure2_closure3_closure4) стойности: [com.example.SeasonTicket$__clinit__closure2_closure3_closure4@31ee7d7a] Възможни решения: wait(), последно (), save(), any(), getAll(), wait(long)
Интеграционният тест беше първият ми опит за прост тест:
void "SeasonTicket.locateOrderedSeasonTicketsByUser finds an object"() {
given:
def seasonTicket = new SeasonTicket()
def user = new User()
user.addToSeasonTickets(seasonTicket)
user.save(flush: true, failOnError: true)
expect: "we can find one season ticket"
SeasonTicket.locateOrderedSeasonTicketsByUser(user).list().size() == 1
}
Изглежда, че потребителското поле в базовия клас не се разпознава. Какво правя грешно, моля?
user
на вашата заявка и свойствотоuser
на класаTicket
. - person aiolos   schedule 28.01.2015