HHH-5442 - Write native tutorial chapter
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@20285 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
95b00867ce
commit
df3b5147c7
|
@ -29,11 +29,12 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The first few <literal>property</literal> elements define JDBC connection information. These tutorials
|
The <literal>connection.driver_class</literal>, <literal>connection.url</literal>,
|
||||||
|
<literal>connection.username</literal> and <literal>connection.password</literal>
|
||||||
|
<literal>property</literal> elements define JDBC connection information. These tutorials
|
||||||
utilize the H2 in-memory database. So these are all specific to running H2 in its in-memory mode.
|
utilize the H2 in-memory database. So these are all specific to running H2 in its in-memory mode.
|
||||||
The 'connection.pool_size' is used to configure Hibernate's built-in connection pool how many
|
<literal>connection.pool_size</literal> is used to configure Hibernate's built-in connection pool
|
||||||
connections
|
how many connections to pool.
|
||||||
to pool.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<important>
|
<important>
|
||||||
|
@ -47,7 +48,8 @@
|
||||||
</important>
|
</important>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <literal>dialect</literal> option specifies the particular SQL variant Hibernate should generate.
|
The <literal>dialect</literal> property specifies the particular SQL variant Hibernate with which
|
||||||
|
Hibernate will converse.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<tip>
|
<tip>
|
||||||
|
@ -61,7 +63,7 @@
|
||||||
</tip>
|
</tip>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <literal>hbm2ddl.auto</literal> option turns on automatic generation of database schemas directly
|
The <literal>hbm2ddl.auto</literal> property turns on automatic generation of database schemas directly
|
||||||
into the database.
|
into the database.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -118,6 +120,8 @@
|
||||||
file is one choice for providing Hibernate with this metadata.
|
file is one choice for providing Hibernate with this metadata.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<programlisting role="XML"><![CDATA[<class name="Event" table="EVENTS">...</class>]]></programlisting>
|
||||||
|
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<title>Functions of the <literal>class</literal> element</title>
|
<title>Functions of the <literal>class</literal> element</title>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -137,9 +141,16 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Instances of the <classname>Event</classname> class are now mapped to rows in the
|
Instances of the <classname>Event</classname> class are now mapped to rows in the
|
||||||
<database class="table">EVENTS</database> table. Hibernate uses the <literal>id</literal> element to
|
<database class="table">EVENTS</database> table.
|
||||||
uniquely identify rows in the table.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<programlisting role="XML"><![CDATA[<id name="id" column="EVENT_ID">...</id>]]></programlisting>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Hibernate uses the property named by the <literal>id</literal> element to uniquely identify rows
|
||||||
|
in the table.
|
||||||
|
</para>
|
||||||
|
|
||||||
<important>
|
<important>
|
||||||
<para>
|
<para>
|
||||||
It is not strictly necessary for the <literal>id</literal> element to map to the table's actual
|
It is not strictly necessary for the <literal>id</literal> element to map to the table's actual
|
||||||
|
@ -158,8 +169,12 @@
|
||||||
<para>
|
<para>
|
||||||
The <literal>generator</literal> element nested inside the <literal>id</literal> element informs
|
The <literal>generator</literal> element nested inside the <literal>id</literal> element informs
|
||||||
Hibernate about which strategy is used to generated primary key values for this entity. In this
|
Hibernate about which strategy is used to generated primary key values for this entity. In this
|
||||||
example, a simple incrementing count is used.
|
example a simple incrementing count is used.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<programlisting role="XML"><![CDATA[<property name="date" type="timestamp" column="EVENT_DATE"/>
|
||||||
|
<property name="title"/>]]></programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The two <literal>property</literal> elements declare the remaining two properties of the
|
The two <literal>property</literal> elements declare the remaining two properties of the
|
||||||
<classname>Event</classname> class: <literal>date</literal> and<literal>title</literal>. The
|
<classname>Event</classname> class: <literal>date</literal> and<literal>title</literal>. The
|
||||||
|
@ -213,6 +228,13 @@
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
|
<programlisting role="JAVA">protected void setUp() throws Exception {
|
||||||
|
// A SessionFactory is set up once for an application
|
||||||
|
sessionFactory = new Configuration()
|
||||||
|
.configure() // configures settings from hibernate.cfg.xml
|
||||||
|
.buildSessionFactory();
|
||||||
|
}</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <classname>org.hibernate.cfg.Configuration</classname> class is the first thing to notice. In this
|
The <classname>org.hibernate.cfg.Configuration</classname> class is the first thing to notice. In this
|
||||||
tutorial everything is simply configured via the <filename>hibernate.cfg.xml</filename> file
|
tutorial everything is simply configured via the <filename>hibernate.cfg.xml</filename> file
|
||||||
|
@ -233,12 +255,28 @@
|
||||||
<!-- todo : reference to a discussion in dev guide -->
|
<!-- todo : reference to a discussion in dev guide -->
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<programlisting role="JAVA">Session session = sessionFactory.openSession();
|
||||||
|
session.beginTransaction();
|
||||||
|
session.save( new Event( "Our very first event!", new Date() ) );
|
||||||
|
session.save( new Event( "A follow up event", new Date() ) );
|
||||||
|
session.getTransaction().commit();
|
||||||
|
session.close();</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<methodname>testBasicUsage</methodname> first creates some new <classname>Event</classname> objects
|
<methodname>testBasicUsage</methodname> first creates some new <classname>Event</classname> objects
|
||||||
and hands them over to Hibernate for "management" via the <methodname>save</methodname> method. At that
|
and hands them over to Hibernate for "management" via the <methodname>save</methodname> method. At that
|
||||||
point, Hibernate takes responsibility to perform an <literal>INSERT</literal> on the database.
|
point, Hibernate takes responsibility to perform an <literal>INSERT</literal> on the database.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<programlisting role="JAVA"><![CDATA[session = sessionFactory.openSession();
|
||||||
|
session.beginTransaction();
|
||||||
|
List result = session.createQuery( "from Event" ).list();
|
||||||
|
for ( Event event : (List<Event>) result ) {
|
||||||
|
System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() );
|
||||||
|
}
|
||||||
|
session.getTransaction().commit();
|
||||||
|
session.close();]]></programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<methodname>testBasicUsage</methodname> then illustrates use of the Hibernate Query Language (HQL) to
|
<methodname>testBasicUsage</methodname> then illustrates use of the Hibernate Query Language (HQL) to
|
||||||
load all existing <classname>Event</classname> objects from the database. Hibernate will generate the
|
load all existing <classname>Event</classname> objects from the database. Hibernate will generate the
|
||||||
|
|
Loading…
Reference in New Issue