CMP Entity Beans как «наивное» решение ORM

CMP Entity Beans как «наивное» решение ORM
CMP Entity Beans как «наивное» решение ORM - jorisbeugels @ Unsplash

В общем, хорошее решение ORM должно быть простым в использовании и понятным

Он должен способствовать использованию хороших шаблонов проектирования (DAO, DTO, отложенная загрузка, сервисы, границы транзакций, простота настройки и т. д.). Он должен быть неинвазивным, то есть не должен заставлять вас расширять специальные классы или реализовывать специальные интерфейсы.

В первые дни спецификации EJB сильно ухудшились, что привело к массовой миграции на такие платформы, как Spring и Hibernate. EJB1 не смог адекватно определить поля CMP в компоненте, EJB2 как бы подразумевал, что они должны быть абстрактными средствами доступа, а не фактическими полями, что было просто странно, и только в EJB3 было создано что-то близкое к тому, что все на самом деле хотели. К тому времени было уже слишком поздно, все считали, что EJB — отстой, и потребовались JCR JPA и JTA, чтобы снова все исправить.

EJB1 и 2 обычно вынуждали разработчика помещать всю свою конфигурацию постоянства в кучу файлов XML вдали от фактического кода, который ее использовал. Это приводит к путанице и ошибкам в коде. Другие фреймворки ORM извлекли уроки из этого и решили вместо этого использовать аннотации. Большая победа для них.

EJB1 и 2 имели очень ограниченную поддержку различных видов отношений и способов их реализации в лежащей в их основе реляционной базе данных. Приходилось использовать всевозможные специальные интерфейсы, и получившийся код было трудно понять.

В любом случае, все это в прошлом, и мы можем с нетерпением ждать светлого будущего, когда Hibernate реализует JPA и JTA. Все очень гармонично.


LetsCodeIt, 20 мая 2023 г., 23:41