Если у меня по проекту id везде, скажем, bigint, auti increment, для сущностей, что плохого в том, что вынесу id, getter в трейт? Все зависит от задачи. Синглтон тоже имеет место жить
думаю тут стоит обратить внимание на контроль за кодом, если команда товарища жестко контролирует изменения трейта, то не такое уж это и зло убрать дублирование кода в данном случае
Я видел горе программистов которые свое неумение декомпозиции маскируют абстрактными классами и трейтами которые никак не помогают поддерживать проект)
Покажи свое умение на самом простом примере в каждой энтити есть createdAt и updatedAt + сеттеры и гетеры к ним + lifecycle callback Декомпозируй - покажи как
Покажи свое умение на самом простом примере в каждой энтити есть createdAt и updatedAt + сеттеры и гетеры к ним + lifecycle callback Декомпозируй - покажи как
Покажи свое умение на самом простом примере в каждой энтити есть createdAt и updatedAt + сеттеры и гетеры к ним + lifecycle callback Декомпозируй - покажи как
createdAt пишем в констракте, updatedAt объявляем через @Version
Аннотация цепляется к int или datetime. При изменения какого-то поля изменяет и этот столбец. Причем, если кто-то одновременно меняет одну и ту же сущность - будет конфликт и исключение.