Ol� Victor,
Para configurar o Hibernate eu uso o m�todo est�tico configure() da
classe Hibernate. Acho mais simples e meu c�digo de inicializa��o
fica desta forma gen�rico, j� que n�o h� depend�ncia das classes a
serem persistidas.
Algo assim:
// COnfigura o hibernate a partir do arquivo hibernate.cfg.xml
// No retorno a session factory estar� registrada no JNDI.
Hibernate.configure();
// Obt�m factory no JNDI
Context ctx = new InitialContext();
SessionFactory sessionFactory = (SessionFactory)
ctx.lookup("HibernateSessionFactory");
Quanto �s classes a serem registradas no Datastore, vc. ter� registrar todas
aquelas
a serem persistidas. P.ex. se a classe A possui uma propriedade da classe B,
ent�o B ter� que
estar registrada se o "hbm" de A declarar como que a propriedade da classe B
� persistente.
ex:
public class A {
// Persistente
private Long _id;
public Long getId() { return _id; }
public void setId( Long id ) { _id = id; }
// Persistente
private B _b;
public B getB() { return _b; }
public void setB( B b ) { _b = b ; }
// N�o persistente
private C _c;
public C getC() { return _c; }
public void setC( C c ) { _c = c;}
}
A.hbm.xml :
<class name="A" table="A">
<id column="id" name="id" type="java.lang.Long" unsaved-value="null">
<generator class="native"/>
</id>
<many-to-one name="b" column="b" class="B" />
</class>
No caso acima, a classe B teria que ser registrada tb. no hibernate, mas n�o
a classe C.
Quanto � divis�o de camadas, a parte de configura��o do datastore, usando o
m�todo acima,
fica isolada do resto do sistema. Os classes a serem persistidas eu deixo em
um mesmo "package" e assim fica f�cil ter uma vis�o completa do modelo
l�gico.
Para gerenciar o ciclo de vida das sess�es de persist�ncia, o ideal � deixar
isto no
n�vel do "controller" da sua aplica��o (estou assumindo aqui que a mesma
esteja estruturada
conforme o pattern MVC). No site do hibernate h� um exemplo de como isto
pode ser
implementado usando filtros.
Espero ter ajudado...
Philippe.
----- Original Message -----
From: "Victor Moreira de Gurjao" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: segunda-feira, 23 de junho de 2003 16:37
Subject: [enterprise-list] Hibernate
Ol� a todos,
Estou iniciando o uso do Hibernate e tenho uma d�vida sobre a distribui��o,
em camadas, dos objetos que controlar�o a persist�ncia dos dados. Pe�o
desculpas pelo e-mail longo, mas gostaria de deixar claro qual � a d�vida...
Tenho de criar um Datastore que armazenar� informa��es mapeadas das classes.
Devo criar ainda um SessionFactory que "fabricar�" sess�es para acesso aos
dados. Depois eu uso os m�todos dos objetos-sess�o para inserir, alterar e
excluir informa��es... Fa�o mais ou menos assim:
Datastore ds = Hibernate.createDatastore();
ds.storeClass(MinhaClasse1.class);
sessionFactory = ds.buildSessionFactory();
Session session = sessionFactory.openSession();
session.save(objeto_da_minha_classe_1);
session.flush();
session.connection().commit();
session.close();
D�vidas:
Supondo que quero persistir v�rias classes, devo armazenar as classes
correlatas no mesmo Datastore?
Devo armazenar todas as classes no mesmo Datastore (n�o apenas as
correlatas)?
Devo criar meu Datastore em uma camada, meu SessionFactory em outra e os
comandos de atualiza��o da em uma terceira camada?
Algu�m tem algum exemplo, com divis�o dos objetos do Hibernate em camadas,
que possa ceder para estudo?
Algu�m sabe um link que indique uma boa divis�o das camadas para esse caso?
Em que situa��es devo compartilhar do mesmo SessionFactory e do mesmo
Datastore?
V�ctor Moreira de Gurj�o
Ps.: Sei que est� meio confuso, mas n�o consegui me expressar melhor.
Agrade�o respostas a qualquer das perguntas. Obrigado!
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]