Я в основном использую Hibernate, чтобы уменьшить потребление памяти моим приложением, потому что я могу хранить данные в базе данных, а не в памяти. По сути, есть одна основная сущность Song, которая представляет музыкальный файл, загруженный из каталога, но первое, что я делаю после добавления песни в базу данных (используя hibernate), это добавление ее в конвейер исполнителей для дальнейшей обработки, чтобы экземпляры объект, представляющий каждую песню, остается в памяти и остается таким до тех пор, пока песня не будет обработана, поэтому я не экономлю много памяти.
Моей первой мыслью было, чтобы я просто сохранил идентификаторы песен, когда я добавляю их в пиплэйн, и получаю фактическую сущность только тогда, когда требуется обработка, но, похоже, это работает против Hibernate, а не против.
Вместо этого я подумал, что если бы я использовал Ehcache с Hibernate, настроенным на использование дискового кэша, это означало бы, что используемые мной экземпляры не будут использовать много памяти, или они будут использовать столько же памяти, как раньше, когда я действительно имел ссылку на их в моем приложении.