CMP e BMP, diferença

Qual a diferença entre esses dois tipos de Componentes EJB?

Não são componentes diferentes, são maneiras diferentes de persistir dados em componentes.

Procure aqui.

[]s

Com toda a sinceridade do mundo…

O BMP te faz tomar no cu pra programar e pra configurar, e depois pra fazer deploy, e depois pra pedir desculpas a gerencia do projeto e tentar explicar pq o projeto atrasou tanto pra entrar em producao.

O CMP te faz tomar no cu pra configurar, e depois pra fazer deploy, e depois pra pedir desculpas a gerencia do projeto e tentar explicar pq o projeto atrasou tanto pra entrar em producao.

Resumindo, no BMP quem gerencia a persistencia dos objetos eh voce. Nao que voce va querer fazer isso. Serio. Pule esse capitulo do livro, disfarce e finja que nunca ouviu falar de BMP a nao ser em piadas. Ou do CMP em historias de horror.

hauhauhauhauhauhauhauhauhauhauhauhauhauhau…
[------------mijando de rir---------------]

Ae e sem falar na EJBQL…que vc tem q usar pra implementar CMP…
e aindaexistem extensões dela que variam de servidor pra servidor…

Lembre-se! Keep It Simple!

Procure algo como iBatis, ou Hibernate.

Bom , acho q a explicação que vc queria esta abaixo:

BMP , é um tipo de Entity onde voce controla o Acesso ao banco de dados , vc tem que realizar as conexoes na mao , procurar os dados , SELECT mesmo… , este tipo só é utilizado em sistemas antigos ou em alguns casos especificos onde CMP não eh uma boa saida… , fique longe dos BMP’s , vc acaba caindo no problema do n+1 e em locks eternos…

CMP, é a evolução do BMP , agora voce nao controla mais o acesso ao banco e nem faz comando SELECT , INSERT , UPDATE , quem faz isso é o Container EJB , ele controla a carga e a descarga da entidade , faz insert quando vc cria , deleta quando vc “remove” , vc nao faz mais nenhum comando SELECT, uma desvantagem do CMP são os arquivos .xml , vc vai precisar quebrar muitos paradigmas.

Como visto acima em outros comentarios, algumas pessoas nao lidao direito com isso e acabao por “nadar… nadar … nadar e morrer na praia” , mas vc precisa saber se Beans de Entidade são realmente o que vc precisa , pois vc pode acabar onerando o seu projeto em tempo e custo de desenvolvimento , Beans de entidade comecao a ficar interessante quando vc precisar integrar as coisas , fazer processamento com dados distribuidos. Se o seu programa for apenas uma “INTERFACE BUNITINHA” para um acesso ao banco de dados , Entity Beans vao só complicar a sua vida.