entity / abstract  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
albjava
JavaBaby
[Avatar]

Membro desde: 28/03/2006 09:35:56
Mensagens: 80
Offline

tenho essa classe:

Nop JBoss aponta erro que a classe não pode ser abstrata?
pq?

Alberto Marianno
Analista de Sistemas
http://marianno.blogspot.com

SCJP 5.0
[Email] [MSN]
sapulha
JavaTeenager
[Avatar]

Membro desde: 18/07/2006 08:10:20
Mensagens: 180
Localização: São Bernardo do Campo
Offline

Classe abstrata não pode ser instanciada, lembra????

Como vc vai utilizar seu EJB ?

"Se não for, não é! Mais se for, pode ser que não seja!"

Sun Certified Java Programmer For The Java 5
luis.soares
JavaEvangelist
[Avatar]

Membro desde: 01/08/2006 09:48:47
Mensagens: 310
Localização: São Paulo
Offline

Uma classe abstrata não tem implementação, não pode ser instanciada.
Logo, uma classe abstrata não pode ser Entity.
Porque você precisa que ele seja abstrata ?

Abraço.

Luis Soares
Analista Desenvolvedor Java
luishsoares@gmail.com
[Email]
JOMI
JavaChild

Membro desde: 28/08/2006 09:16:07
Mensagens: 103
Offline

luis.soares e sapulha, a classe tem que ser abstrata pois seria um EJB Entity CMP (Container Managed Persistence).
AlbJava, dê uma olhada se no DD ejb-jar.xml vc declarou certo.

SCBCD - quase la!!
SCWCD - 88%
SCJP - 70%
SCJA - 78%
luis.soares
JavaEvangelist
[Avatar]

Membro desde: 01/08/2006 09:48:47
Mensagens: 310
Localização: São Paulo
Offline

JOMI, o fato de ser um CMP ou um BMP não muda em nada o fato de ela ser abstrata. O conceito é um só. Classes abstratas não podem ser instanciadas.
O próprio JBoss está apontando esta inconsistência.
Qual o argumento técnico de que uma Entity Bean deva ser abstract ???


Luis Soares
Analista Desenvolvedor Java
luishsoares@gmail.com
[Email]
JOMI
JavaChild

Membro desde: 28/08/2006 09:16:07
Mensagens: 103
Offline

luis.soares, um Entity Bean do tipo CMP deve ser declarado como abstract conforme a Especificacao. Um BMP nao.
O EJB vc não instancia, o Container trata isso. Vc so tem que fazer um lookup na JNDI do EJB para usa-la e nao instanciar.



SCBCD - quase la!!
SCWCD - 88%
SCJP - 70%
SCJA - 78%
JOMI
JavaChild

Membro desde: 28/08/2006 09:16:07
Mensagens: 103
Offline

http://java.sun.com/developer/technicalArticles/ebeans/EJB20CMP/

SCBCD - quase la!!
SCWCD - 88%
SCJP - 70%
SCJA - 78%
JOMI
JavaChild

Membro desde: 28/08/2006 09:16:07
Mensagens: 103
Offline

Explicando melhor, o Bean Class vc declara como abstract no Entity CMP. Vc vai utilizá fazendo um lookup no seu Home e utilizando os metodos que ele fornece por exemplo create (criará o registro na base), findByPrimaryKey (encontrar um registro especifico atraves da chave primaria que vc declara no DD) ou outros metodos bussines que vc definir como por exemplo, getAllCustomers e etc. Com o Session Bean o create se comporta de forma diferente, vc utiliza para pegar o EJBObject (Remota)

Concordo que classes abstratas vc nao pode instanciar. Isso é correto, porem estamos falando de EJB e o Bean quem trata é o Container mesmo vc declarando ele como abstract. Se vc instanciar o Bean, com certeza vai dar erro, vc so conversa com o Bean atraves do Home que devolve o Component.

Ta claro?

SCBCD - quase la!!
SCWCD - 88%
SCJP - 70%
SCJA - 78%
luis.soares
JavaEvangelist
[Avatar]

Membro desde: 01/08/2006 09:48:47
Mensagens: 310
Localização: São Paulo
Offline

Opa, agora sim, JOMI !
Valeu pelas explicações.

Abraço.

Luis Soares
Analista Desenvolvedor Java
luishsoares@gmail.com
[Email]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team