Ключи кеша запросов Hibernate - PullRequest
       9

Ключи кеша запросов Hibernate

1 голос
/ 24 февраля 2012

Если я укажу, что результаты запроса должны быть кэшированы, например,

// This example shows the execution of a Hibernate query in a Grails app,
// but the question isn't really about Grails
Author author = new Author(name: 'Charles Dickens')
def results = Book.findByAuthor(author, [cache: true])

Обязательно ли для Автора реализовать equals() и hashCode(), чтобы кэширование было эффективным?

Если я не реализую эти методы, то получается, что если я выполню приведенный выше код дважды, второй объект автора будет иметь хеш-код, отличный от первого, и поэтому кэшированные результаты не будут возвращеныво второй раз выполняется запрос.

Обновление

Для тех, кто не знаком с GORM, приведенный выше запрос эквивалентен HQL

executeQuery("from Book b where b.author = ?", author)
...