lazy collections have been well tested and used by many others, so there may be errors with them, it is more likely that the lazy collection class is lying to you.
When each of the UserShow objects UserShow retrieved from the DAO, episodes will not be empty, but an instance of LazyForeignCollection will be set LazyForeignCollection . However, there will be no additional queries, and there will be no Episode data contained in the collection. If you then make a call to one of the methods in the collection, for example userShow.getEpisodes().iterator() , then a separate request will be made so that you can iterate over these episodes. The way lazy collections work.
If you still think that lazy collections do not work, please show us how you determine that there are episode data on the show. To find out what queries are running there, you can enable the Android log with ORMLite .
Edit:
It turns out that @Georgy used a debugger to examine the collection. The debugger most likely calls the same iterator() or toArray() methods that cause the collection request to be issued at this point. Thus, there were no episodes in the collection before the debugger asked for them.
source share