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]

Responder a