Взаимосвязь между устаревшими объектными компонентами в Java EE и аннотацией @Entity?
В Java много бобов и овощей, и это начинает меня смущать. Я прочитал пару недавно опубликованных книг по Java EE 6, и все они говорят, что "сущностные бины" были сокращены ("устарело" будет правильным термином для новичка, еще не промытого мозгами средой Java). Авторы быстро говорят, что они вообще не будут касаться темы "сущностных бинов". Он был заменен JPA, говорят они. Затем они пишут главу или две о сопоставлении объектных отношений и комментируют классы POJO @Entity
, Они также аннотируют поля здесь и там, чтобы указать конфигурацию отображения, когда значений по умолчанию недостаточно.
Однако обычно, когда мы аннотируем классы bean -компонентов, мы принимаем эту аннотацию как префикс типа. Например, аннотация @Stateful
делает компонент сессионным компонентом Разве это не значит, что @Entity
аннотация делает бин сущностным бином - то же самое, что они объявили устаревшим!?
1 ответ
Аннотированные классы @Entity (отображение) вообще не связаны с "устаревшими" объектными компонентами из архитектурной модели J2EE. Во всяком случае, не совсем.
Те "устаревшие" бины сущностей, о которых вы читаете, все еще существуют, просто они подвергнуты рефакторингу настолько широко, что почти неузнаваемы для тех, кто привык к старой школе J2EE.
В новой модели Java EE классы обслуживания и модели должным образом разделены: в качестве моделей используются аннотированные компоненты JPE @Entity, а в качестве классов обслуживания служат сеансовые компоненты @Stateless или @Stateful.
Главное, что нужно иметь в виду, это разделение интересов.