<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://cursohibernate.es/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://cursohibernate.es/feed.php">
        <title>cursohibernate unidades:07_arquitectura</title>
        <description></description>
        <link>https://cursohibernate.es/</link>
        <image rdf:resource="https://cursohibernate.es/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-19T10:18:08+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:00_start&amp;rev=1680895588&amp;do=diff"/>
                <rdf:li rdf:resource="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:01_hibernateutil&amp;rev=1680895588&amp;do=diff"/>
                <rdf:li rdf:resource="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:02_excepciones&amp;rev=1680895588&amp;do=diff"/>
                <rdf:li rdf:resource="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:03_dao&amp;rev=1680895588&amp;do=diff"/>
                <rdf:li rdf:resource="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:04_paquetes&amp;rev=1680895588&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://cursohibernate.es/lib/tpl/dokuwiki/images/favicon.ico">
        <title>cursohibernate</title>
        <link>https://cursohibernate.es/</link>
        <url>https://cursohibernate.es/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:00_start&amp;rev=1680895588&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-07T21:26:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Inicio</title>
        <link>https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:00_start&amp;rev=1680895588&amp;do=diff</link>
        <description>Inicio

Esta unidad llamada “Arquitectura” explica cómo organizar el código de una aplicación en Hibernate para hacerlo más mantenible usando el patrón DAO. Mejoraremos el tratamiento de las excepciones con la clase BusinessException.Se creará la clase</description>
    </item>
    <item rdf:about="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:01_hibernateutil&amp;rev=1680895588&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-07T21:26:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>HibernateUtil</title>
        <link>https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:01_hibernateutil&amp;rev=1680895588&amp;do=diff</link>
        <description>HibernateUtil

El uso de hibernate nos obliga a tener siempre disponible una referencia al objeto  para que cualquier clase pueda tener acceso al objeto  y por lo tanto a todas las funcionalidades de Hibernate.

Acceso a  SessionFactory

El problema de acceder al objeto</description>
    </item>
    <item rdf:about="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:02_excepciones&amp;rev=1680895588&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-07T21:26:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Excepciones</title>
        <link>https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:02_excepciones&amp;rev=1680895588&amp;do=diff</link>
        <description>Excepciones

Nuestro siguiente tema a tratar con la arquitectura de Hibernate es el tratamiento de las excepciones.Antes de ver este tema es recomendable la lectura de Tratamiento de Excepciones.

Tratamiento de Excepciones

Al realizar una operación con Hibernate se pueden lanzar cualquiera de las siguiente 4 excepciones:</description>
    </item>
    <item rdf:about="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:03_dao&amp;rev=1680895588&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-07T21:26:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DAO</title>
        <link>https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:03_dao&amp;rev=1680895588&amp;do=diff</link>
        <description>DAO

Pasemos ahora a ver cómo implementar el patrón DAO usando Hibernate y de forma que sea fácilmente reutilizable. 

El mayor problema del patrón DAO es la repetición de código para cada una de las entidades. Para evitar dicha repetición y obtener una gran flexibilidad en la implementación del objeto DAO se va a usar un modelo de clases e interfaces un poco complejo, pero una vez entendido cómo funciona será muy sencillo crear nuevos objetos DAO o cambiar su implementación.</description>
    </item>
    <item rdf:about="https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:04_paquetes&amp;rev=1680895588&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-07T21:26:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Paquetes</title>
        <link>https://cursohibernate.es/doku.php?id=unidades:07_arquitectura:04_paquetes&amp;rev=1680895588&amp;do=diff</link>
        <description>Paquetes

En este tema vamos a explicar como se han organizado todas las clases de un proyecto. 



En la siguiente carpeta vemos como hemos organizado en paquetes las principales clases de un proyecto.



Hay dos paquetes principales:

	*  com.fpmislata.persistencia</description>
    </item>
</rdf:RDF>
