EJB Entity

Bom estou estudando j2ee e bem, não entendi direito exatamente como funciona ejb de entidades vou tentar expor minha duvida e espero que me ajudem a entender.

EJB de entidades fucnionam como repositorio de dados certo? eles mantêem os dados , mas qual a vantagem de usa-los em vez de usar o proprio banco de dados para a armazanamento de dados ? seria para a facil manipulação dos dados com um bean de sessão apesar da complicação e mais uma camada para ser acessada ? não entendi muito bem.
Bom a persistencia com bd se faz com uma base de dados mesmo certo tipo tenho uma base em sql server preencho o meu bean entity com dados de uma base real certo e ela se mantem em sincronismo com ela certo? esse armazem de dados que falam é o banco de dados?
Bom a real qual a vantagem do bean entity?

Desde de já grato.
Saulo Henry Pottier.

    Errado. A grosso modo um entity bean representa um registro no banco de dados, ou seja, um objeto do tipo Pessoa por exemplo.

Vc ainda é dependente de banco de dados mesmo usando entity beans

Vc usa o session bean para trabalhar com o entity bean…seja pesquisar uma entity, apagar uma entity, ou qualquer outra operação

[quote]
Bom a persistencia com bd se faz com uma base de dados mesmo certo tipo tenho uma base em sql server preencho o meu bean entity com dados de uma base real certo e ela se mantem em sincronismo com ela certo?[/quote]

Errado. Quem mantem o sincronismo das entity´s com o banco de dados é o servidor de aplicação

Sim

Quando o seu bean representa uma entitade do negocio e não uma operação do negócio(Session Beans).
E tambem quando vc precisa que o estado do seu bean seja persistente.
Um exemplo é quando o servidor de aplicação cai, o estado de bean ainda existe no banco de dados.

se vc tem 10 linhas na sua tabela, vc tera 10 entitys representando cada linha da tabela, não um unico entity por tabela.
a persistencia é feita a partir da manipulação desses entity, que quando alterados, refletem no banco.
para criar um novo registro, vc precisa criar um novo entity, e preencher suas propriedades.
por cima é isso…

[]'s

Mas o que é realmente a persistencia ?

Pois existe o BMP e o CMP entao quem mantem a persistencia no BMP é o bean.

Mais uma duvida surgida agora pouco(lembrada) se o bean representa uma linha entao é um registro unico por isso o uso de chave primaria para identificar o registro pelo bean certo entao para que serve a teoria de que o bean é a nivel de aplicativo e pode ser acessado por varios clientes ao mesmo tempo sendo que ele representa um registro em partiular ? não consegui captar o por que.

[url=http://en.wikipedia.org/wiki/Persistence]PERSISTÊNCIA[/url]

BMP - Bean Managed Persistence

Quem controla a persistencia é vc, vc que faz os select, insert´s, update´s tudo na oooonha.

CMP - Container Managed Persistence

Quem cuida da persitencia é APP Server, ele te faz o favor de gerar os insert´s, finder´s, update´s, remove´s e mais um monte de coisas

 Vamos supor um objeto Pessoa, onde a chave identifica ela é o RG.....
 Agora suponha que vc tenha atributos de pessoa como cor, altura, peso...etc. Agora pegando vc como exemplo de objeto Pessoa, se a gente alterar alguns desses atributos como peso por exemplo, vc seria uma nova pessoa ou continuaria sendo a mesma? Continuaria sendo a mesma.....pois o que mudou foi um atributo pertinente a vc "saulohenry", agora se mudarmos o numero do seu RG, vc deixaria de ser "saulohenry" e seria um novo obejto pessoa. É por isso que com ejb´s vc não consegue alterar chaves primárias.....porque se ela é alterada, logo o objeto não mais o mesmo, é outro. Não sei se fui claro o suficiente

Com certeza foi claro agora entendi alguns conceitos a mais mas quanto a ela ser global e todos poderem acessa-las muitos ao mesmo tempo ? será que pelo fato de que por exemplo poderia ser minha entidade produto de um produto especifico certo eles estaria no bean e entao poderia criar bean sessions para tipo dar um desconto para vips de 10% e para normais 5% ai teria beans sessions com estados ligados a meu cliente especifico ( vamos supor 2 clientes , um normal e um vip) e os dois acessassem minha entidade produto especifico so que estariam acessando o mesmo ao mesmo tempo mas cada um receberia um preço diferente, certo? Pelo meu exemplo me diga se eu entendi certo o conceito de entidade que tem a ver sobre entidade do negocio e o session regra do negocio em um aplicativo tipo comercio eletronico .