[hibernate-commits] Hibernate SVN: r17817 - core/trunk/annotations/src/main/docbook/en/modules.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Thu Oct 22 06:02:12 EDT 2009
Author: sharathjreddy
Date: 2009-10-22 06:02:12 -0400 (Thu, 22 Oct 2009)
New Revision: 17817
Modified:
core/trunk/annotations/src/main/docbook/en/modules/entity.xml
Log:
HHH-4473 Create documentation to explain the usage of the new 'defaultForType' attribute of the TypeDef annotation
Modified: core/trunk/annotations/src/main/docbook/en/modules/entity.xml
===================================================================
--- core/trunk/annotations/src/main/docbook/en/modules/entity.xml 2009-10-22 00:59:53 UTC (rev 17816)
+++ core/trunk/annotations/src/main/docbook/en/modules/entity.xml 2009-10-22 10:02:12 UTC (rev 17817)
@@ -2656,15 +2656,36 @@
<para><literal>@org.hibernate.annotations.TypeDef</literal> and
<literal>@org.hibernate.annotations.TypeDefs</literal> allows you to
declare type definitions. These annotations can be placed at the class or
- package level. Note that these definitions are be global for the
- session factory (even when defined at the class level). Type definitions have
- to be defined before any usage. If the type is used on a single entity, you
- can plance the definition on the entity itself. Otherwise, it is recommended
- to place the definition a the package level since the entity processing order
- is not guaranteed.</para>
+ package level. Note that these definitions are global for the
+ session factory (even when defined at the class level). If the type is used on a single entity, you can place the definition on the entity itself. Otherwise, it is recommended to place the definition at the package level. In the example below, when Hibernate encounters a property of class <literal>PhoneNumer</literal>, it delegates the persistence strategy to the custom mapping type <literal>PhoneNumberType</literal>. However, properties belonging to other classes, too, can delegate their persistence strategy to <literal>PhoneNumberType</literal>, by explicitly using the <literal>@Type</literal> annotation. </para>
+
<note>Package level annotations are placed in a file named <filename>package-info.java</filename>
in the appropriate package. Place your annotations before the package declaration.</note>
+<programlisting>
+ at TypeDef(
+ name = "phoneNumber",
+ defaultForType = PhoneNumber.class,
+ typeClass = PhoneNumberType.class
+)
+
+ at Entity
+public class ContactDetails {
+ ...
+ private PhoneNumber localPhoneNumber;
+ @Type(type="phoneNumber")
+ private OverseasPhoneNumber overseasPhoneNumber;
+ ...
+}
+
+
+</programlisting>
+
+<para>
+The following example shows the usage of the <literal>parameters</literal> attribute to customize the TypeDef.
+</para>
+
+
<programlisting>//in org/hibernate/test/annotations/entity/package-info.java
@TypeDefs(
{
More information about the hibernate-commits
mailing list