Увы, теперь не удастся выяснить причину. Психанул, снёс локальный репозиторий мавена, сделал реимпорт - всё заработало. Видимо, какой-то спорадический глюк. Хотя он много крови попил. Тем не менее, спасибо за помощь.
Определился с решением уже задолго после возникновения проблемы. Похоже, в БД не должно быть записей с ключом 0. Если нумерация начинается с 1, то при сохранении сущности с id = 0 значение генерируется, а при указании уже существующего id обновляется.