Я наконец-то выяснил причину возникновения этой проблемы. Это Proguard. Если вы не укажете иное в конфигурационном файле proguard, он будет запутывать сгенерированный код при удалении аннотаций, а что нет, что приведет к неожиданным результатам.
Единственный способ заставить сосуществовать Proguard и Dagger - это отказаться от большей части запутывания или переключиться на Dagger2, как сказал Джейк Уортон https://github.com/square/dagger/issues/202 . Я использую Proguard только для того, чтобы избежать превышения лимита в 65 Кб, поэтому создание необходимых конфигов во избежание запутывания решило мою проблему.
Можно также использовать это для подстановочных поисков:
CREATE INDEX IF NOT EXISTS foo_table_bar_field ON foo_table(lower(username))
Запрос как так:
SELECT * FROM foo_table WHERE lower(username) like 'bob%'