<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : __NAME__
    Created on : __DATE__, __TIME__
    Author     : __USER__
    
    Description:
    Hibernate needs to know how to load and store objects of the persistent class. This is where the Hibernate mapping file comes into play. 
    The mapping file tells Hibernate what table in the database it has to access, and what columns in that table it should use.
    
    Note that the Hibernate DTD is very sophisticated. You can use it for auto-completion of XML mapping elements and attributes in your editor or IDE. 
    You also should open up the DTD file in your text editor - it's the easiest way to get an overview of all elements and attributes and to see the defaults, 
    as well as some comments. Note that Hibernate will not load the DTD file from the web, but first look it up from the classpath of the application. 
    The DTD file is included in hibernate3.jar  as well as in the src/ directory of the Hibernate distribution.
    
    1. Between the two hibernate-mapping tags, include a class element. All persistent entity classes (again, there might be dependent classes later on, 
       which are not first-class entities) need such a mapping, to a table in the SQL database.
    2. So far we told Hibernate how to persist and load object of class Customer to the table CUSTOMER, each instance represented by a row in that table. 
       Now we continue with a mapping of the unique identifier property to the tables primary key. In addition, as we don't want to care about handling this 
       identifier, we configure Hibernate's identifier generation strategy for a surrogate primary key column.
    3. The id element is the declaration of the identifer property, name="id" declares the name of the Java property - Hibernate will use the getter and setter 
       methods to access the property. The column attribute tells Hibernate which column of the CUSTOMER table we use for this primary key. The nested generator 
       element specifies the identifier generation strategy, in this case we used increment, which is a very simple in-memory number increment method useful 
       mostly for testing (and tutorials). Hibernate also supports database generated, globally unique, as well as application assigned identifiers (or any strategy 
       you have written an extension for).
    4. Finally we include declarations for the persistent properties of the class in the mapping file. By default, no properties of the class are considered persistent.
    5. Just as with the id element, the name  attribute of the property element tells Hibernate which getter and setter methods to use.
    6. Without the column attribute Hibernate by default uses the property name as the column name.
    7. The types we declare and use in the mapping files are not, as you might expect, Java data types. They are also not SQL database types. These types are so called 
       Hibernate mapping types, converters which can translate from Java to SQL data types and vice versa. Again, Hibernate will try to determine the correct conversion 
       and mapping type itself if the type attribute is not present in the mapping. In some cases this automatic detection (using Reflection on the Java class) might not 
       have the default you expect or need, then you must specify the type.
    8. The naming of mapping files can be arbitrary, however the hbm.xml suffix became convention in the Hibernate developer community.
    
-->

<!DOCTYPE hibernate-mapping PUBLIC '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'>
<hibernate-mapping>

    
    
    
</hibernate-mapping>

