- Shipped
- August 14, 2026 at 12:19 AM UTC
- Author
- Kamo
- Commit
- bbf2860
What Hibernate cannot express for the new hr_timecard_payroll_* tables. Two REVOKEs. PayrollDispatch and PayrollSyncIssue refuse updates and deletes in Java through @PreUpdate/@PreRemove, but entity callbacks fire only for rows loaded into a persistence context — bulk JPQL, deleteAllInBatch() and native SQL walk straight past them. A payroll transmission attempt is a money event, and evidence about a completed sync has to survive to be evidence. Two partial indexes, which the entity cannot carry because they have predicates: the sweep's work list (orgs with syncing enabled and a sync due, a small minority of rows) and per-member sync errors (ERROR rows, outnumbered by INFO roughly by the size of the roster). Applied and verified against Yugabyte.