Каков стандартный способ генерации счетов? Можно ли создавать задания cron, в которых записывается дата следующего счета клиента, и проверять конкретного клиента только тогда, когда пришло время создать счет.
Стандартного способа не существует. Но эта задача действительно типичный кандидат на пакетную работу. Либо запустите его в конце месяца, если вы выставляете счета всем клиентам одновременно или ежедневно и выбираете только тех клиентов, которые подлежат оплате на основании некоторых критериев даты. Для каждого клиента делай то, что должен. В зависимости от размера ваших данных JPA может не подходить (или, возможно, учитывать StatelessSession
Hibernate или даже забыть его).
Что касается планировщика, я чаще всего видел планировщик предприятия, такой как Quartz, или даже более крупные специализированные решения, такие как Control-M, Dollar-U, TNG Workload и т. Д.
Я настоятельно советую НЕ создавать одну работу для каждого клиента. Это действительно не очень хорошее решение (черт возьми, администрировать, не масштабировать и т. Д.).