Hibernate com camadas

5 respostas
R

Bom dia, estou desenvolvendo Hibernate com netbeans e estou com dúvidas.

Minha idéia é desenvolver algo semelhante a GenericHibernateDAO mostrado no site do hibernate.

Porem gostaria de separar as camadas em arquivos .jar diferentes(projetos netbeans class) para reutilização em futuros projetos.

seria assim os projetos (.jar):

FrmHibernateDAO - classes genéricas para acesso a dados com hibernate.
DAO - classes que herdam de FrmHibernateDAO para possuir metodos especificos de acesso a dados.
VO - classes VOs ou modelo de dados, que vai conter os hbm.xml

a mais um projeto com a aplicação que vai referenciar todos acima e este deve possuir o hibernate.cfg.xml

porem quando vou executar o hibernate não encronta o hibernate.cfg.xml. só se estiver no projeto FrmHibernateDAO. mais como ele vai ser reaproveitado não é uma boa ideia.

Alguem sabe como resolver isto.

outro projeto são os arquivo hbm.xml que tambem não são encrontados.

Ss não fui claro é só pergunta.

5 Respostas

Rafael_Steil

O hibernate.cfg.xml deve estar no classpath da aplicacao principal.

Rafael

R

já estava, mais agora funcionou, de um clear e build novamente.

quanto aos hbm.xml não consegui ainda.

eles não estão na aplicação final. e sim em outra como faco para configurar isto no hibernate.cfg.xml

por exemplo no meu caso esta assim.

(+) VO
          Vendas
                    Cliente.java
                    Cliente.hbm.xml
(+) AppVendas
          hibernate.cfg.xml
e o hibernate.cfg.xml está assim.
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:oracle:xe</property>
        <property name="connection.username">hibernate</property>
        <property name="connection.password">hibernate</property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <!-- Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        
        <!-- xml de mapeamento das classes -->
        <mapping resource="VO/vendas/Cliente.hbm.xml"/>        
    </session-factory>
</hibernate-configuration>
Rafael_Steil

Tem que estar tudo no classpath. E se voce esta usando Java 5 ou superior, use Annotations - muito mais simples.

Rafael

R

você pode der boas referencias sobre Annotations. tenho liberdade para utilizar qualquer versão do java.

e valeu pela dica, funcionou assim.

Rafael_Steil

Aqui:

http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/

Além disso, compre o livro “Java Persistence com Hibernate”. É o melhor que existe, e vale o investimento

Rafael

Criado 16 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 5
Participantes 2