Ejb vs Hibernate
Para chegar ao EJB, é bom entender o contexto de onde ele emana. Existem dois tipos de beans de entidade. Estes são o CMP e o BMP. O CMP refere-se à persistência gerenciada por contêiner, enquanto o BMP refere-se à persistência gerenciada por bean. O EJB é usado especialmente para formulação e serialização de objetos ao lidar com bancos de dados relacionais em SQL.
Quando o desenvolvimento de um aplicativo complexo começa a funcionar, ele começa com a modelagem. É preferível usar classes e objetos sobre as tabelas, pois eles vêm com inter-relações complexas que podem causar muitos problemas se não forem bem implementadas. Em essência, isso significa que lidamos com um sistema que emprega o design do pensamento em objetos e não em tabelas. O uso de bancos de dados relacionais é bastante rápido e testado a tempo. Isso comparado à serialização de objetos economiza tempo, pois a serialização complexa de objetos é um processo muito lento. O uso da tecnologia de banco de dados relacional é rápido e testado no tempo e popular entre muitos desenvolvedores e, portanto, o motivo pelo qual é preferido.
É possível lidar puramente com tabelas em desenvolvimento e empregar beans de sessão na manipulação e leitura de dados. Na medida do possível, sua praticidade não é possível, especialmente quando se lida com projetos realmente complexos para usar o método acima. Essa é a base que segue o uso de beans de entidade no EJB.
O CMP no EJB1 foi projetado para ser adequado para uso com tabelas simples que não vêm com um relacionamento complexo com outras tabelas. O uso do CMP evita referências que se referem ao banco de dados subjacente. Na verdade, isso significa que é mais portátil e o bloqueio do fornecedor não ocorre. O EJB 1 também persiste dados para objetar bancos de dados, além de bancos de dados relacionais.
O EJB 2.0 veio com um design revolucionário que visa melhorar a funcionalidade geral. A principal mudança é o formato que ele propõe para escrever o CMP. Ele fornece relacionamentos e também propõe o uso de uma linguagem de consulta simples denominada EBJ-QL. Essa linguagem visa minimizar o tráfego de rede chamando um bean de entidade de bean de sessão.
O Hibernate, por outro lado, é uma ferramenta ORM que não possui uma curva de aprendizado acentuada comum ao EJB e não é tão propensa a erros quanto o EJB. O Hibernate é preferido devido à sua flexibilidade, permitindo o uso de Servlets e JSP. O Hibernate é construído de acordo com a especificação J2EE que o torna aplicável na maioria dos aplicativos que um desenvolvedor terá. O Hibernate é uma ferramenta ORM especial, pois não só pode ser usada em contêineres EJB, mas também é aplicável em contêineres independentes e contêineres da Web. Essa é a principal diferença que se destaca entre EJB e Hibernate. O desenvolvimento com o Hibernate é, portanto, muito mais fácil e menos complicado, em oposição ao uso do EJB.
O Hibernate é aparentemente mais popular entre os usuários do ambiente J2EE e, se o EBJ continuar com o desenvolvimento de recursos complexos que demoram um pouco para que os usuários se familiarizem, o Hibernate será o dominante no campo, e o EJB poderá se ver bloqueado. Atualmente, o J2EE não está em contato com a maioria dos desenvolvedores que ele busca atingir no mercado.
Sumário
EJB é um bean de entidade usado especialmente para a formulação de objetos
Existe a possibilidade de usar tabelas e o uso de beans de sessão na leitura e manipulação de dados, embora não seja prático
EBJ fornece uma linguagem de consulta relativamente simples para desenvolvimento, denominada EJB-QL
EBJ propenso a erros
O Hibernate é relativamente fácil de entender e implementar
Hibernar não propenso a erros como EJB