В Cuba Platform была
StandardEntity implements Creatable, SoftDelete, Updatable, Versioned { …}
Есть желание сделать так, чтобы можно было комбинировать эти (и любые другие интерфейсы), а байт код для доступа к полям генерировался Javassist.
Есть понимание, что возможны следующие проблемы:
Генерация миграционных changeLog’ов должна выполняться с учетом сгенерированного байткода
Jmix Studio не будет видеть сгенерированные поля
Подскажите пожалуйста, возможна ли реализация такого решения?
С какими еще проблемами можем столкнуться?
Ваш класс сущности может имплементировать любые ваши интерфейсы, это не должно помешать никаким механизмам Jmix. Но это должен быть именно класс, не интерфейс.
Насколько я понимаю вы хотите чтобы класс сущности генерировался при сборке, а в исходниках были только интерфейсы? А для чего если не секрет? И кстати в CUBA такого не было.
Код сущностей поддерживается дизайнером Студии автоматически, его не надо писать руками. Тогда какая разница в каком виде он существует - в исходниках и в байткоде или только в байткоде? В первом случае как минимум понятнее и удобнее отлаживать.