##### XDoclet

- Overview
- News and Status
- Download/Installation
- Using XDoclet
- Best Practices
- FAQ
- License

##### Ant Task Reference

- <doclet .. />
- <ejbdoclet .. />
- <hibernatedoclet .. />
- <jdodoclet .. />
- <jmxdoclet .. />
- <mockdoclet .. />
- <portletdoclet .. />
- <springdoclet .. />
- <tapestrydoclet .. />
- <webdoclet .. />
- <wseedoclet .. />

##### Tag Reference

- apache (@soap @struts @axis @tapestry)
- bea (@weblogic)
- borland (@bes)
- caucho (@resin)
- ejb (@ejb @dao)
- exolab (@castor)
- hp (@hpas)
- hibernate (@hibernate)
- ibm (@websphere)
- java (@javabean)
- jboss (@jboss)
- jdo (@jdo)
- jmx (@jmx)
- jsf (@jsf)
- macromedia (@jrun)
- mockobjects (@mock)
- mvcsoft (@mvcsoft)
- mx4j (@mx4j)
- objectweb (@jonas)
- oracle (@oc4j)
- orion (@orion)
- portlet (@portlet)
- pramati (@pramati)
- spring (@spring)
- sun (@sunone)
- sybase (@easerver)
- tjdo (@tjdo)
- web (@web @jsp)
- webwork (@webwork)
- wsee (@wsee)
- xdoclet (@xdoclet @doc @msg)

##### Feature Documentation

- Using Value Objects
- EJB Environment Handling

##### Advanced

- Maven Plug-in
- Merge Points
- IDE Integration
- Migration from EJBDoclet
- Ant 1.5 Troubleshooting

##### Community

- Feedback
- Resources
- Tools

##### Development

- Developer Guide
- Javadoc (API)
- Template Language (*.xdt)
- XJavaDoc Site

##### Search XDoclet

##### Project Documentation

- About XDoclet
- Project Info
- Project Reports
- Development Process

## @hibernate Tag Reference

Tags for declaration of Hibernate descriptor file

Applies to: All classes, at class level and on getter methods

### @hibernate Class Level Tags

@hibernate.cache
@hibernate.class
@hibernate.discriminator
@hibernate.jcs-cache
@hibernate.joined-subclass
@hibernate.joined-subclass-key
@hibernate.mapping
@hibernate.query
@hibernate.subclass

### @hibernate Method Level Tags

@hibernate.any
@hibernate.any-column
@hibernate.array
@hibernate.bag
@hibernate.collection-cache
@hibernate.collection-composite-element
@hibernate.collection-element
@hibernate.collection-index
@hibernate.collection-jcs-cache
@hibernate.collection-key
@hibernate.collection-key-column
@hibernate.collection-many-to-many
@hibernate.collection-one-to-many
@hibernate.column
@hibernate.component
@hibernate.generator-param
@hibernate.id
@hibernate.index-many-to-many
@hibernate.list
@hibernate.many-to-any
@hibernate.many-to-any-column
@hibernate.many-to-one
@hibernate.map
@hibernate.one-to-one
@hibernate.parent
@hibernate.primitive-array
@hibernate.property
@hibernate.set
@hibernate.timestamp
@hibernate.version

### @hibernate Field Level Tags

## @hibernate Class Level Tag Usage

### @hibernate.cache (0..1)

Enables caching

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
usage | text |  | Defines the cache semantics Valid options are: read-write nonstrict-read-write read-only transactional | true

### @hibernate.class (0..1)

Declare a persistent class

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
table | text |  | The name of its database table | false
discriminator-value | text |  | A value that distinguishes the particular subclass | false
mutable | bool |  | Specifies that instances of the class are (not) mutable Default value(s): true Valid options are: true false | false
dynamic-update | bool |  | Specifies that only changed columns should appear in the SQL UPDATE Default value(s): false | false
dynamic-insert | bool |  | Specifies that null columns should not appear in the SQL INSERT Default value(s): false | false
select-before-update | bool |  | Specifies that an SQL update should never be performed unless the object is actually modified Default value(s): false | false
optimistic-lock | text |  | Specifiy the optimistic locking strategy (requires dynamic-update="true") Default value(s): version Valid options are: version none all dirty | false
polymorphism | text |  | Enable "explicit" polymorphism Default value(s): implicit Valid options are: explicit implicit | false
schema | text |  | Override the schema name specified by the root hibernate-mapping element | false
lazy | bool |  | Specifies the class itself to use for CGLIB proxy interface Default value(s): false | false
proxy | text |  | Specifies an interface to use for CGLIB proxies | false
where | text |  | the where clause to use when loading elements for this class | false
persister | text |  | Specifies a custom ClassPersister | false
batch-size | text |  | specify a "batch size" for fetching instances of this class by identifier | false

### @hibernate.discriminator (0..1)

Defines a discriminator

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true
type | text |  | The Hibernate type | false
length | text |  | The length of the mapped database table column | false
not-null | bool |  | Is the column nullable Default value(s): true Valid options are: true false | false
force | bool |  | Indicate whether Hibernate should specify allowed discriminator values even when retrieving all instances of the root class. Default value(s): true Valid options are: true false | false
insert | bool |  | Set this to false if your discriminator column is also part of a mapped composite identifier. Default value(s): true Valid options are: true false | false

### @hibernate.jcs-cache (0..1)

Enables caching (deprecated)

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
usage | text |  | Defines the cache semantics. nonstrict-read-write only applies to version 2.0 and later. Valid options are: read-write nonstrict-read-write read-only transactional | true

### @hibernate.joined-subclass (0..1)

Declare the current class as joined subclass

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
lazy | bool |  | Specifies the class itself to use for CGLIB proxy interface Default value(s): false | false
proxy | text |  | Specifies an interface to use for CGLIB proxies | false
dynamic-update | bool |  | Specifies that only changed columns should appear in the SQL UPDATE Default value(s): false | false
dynamic-insert | bool |  | Specifies that null columns should not appear in the SQL INSERT Default value(s): false | false
schema | text |  | Override the schema name specified by the root hibernate-mapping element | false
table | text |  | Name of the table, where this class should be persisted in Default value(s): unqualified class name | false

### @hibernate.joined-subclass-key (0..1)

Declares a joined-subclass key

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true

### @hibernate.mapping (0..1)

Customizes mapping declaration

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
schema | text |  | The name of a database schema | false
default-cascade | text |  | A default cascade style Default value(s): none Valid options are: none save-update | false
auto-import | bool |  | Specifies whether we can use unqualified class names (of classes in this mapping) in the query language Default value(s): true Valid options are: true false | false

### @hibernate.query (0..*)

Declare a named query for class

Applies to: Class level on bean

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | Name of this query | true
query | text |  | Query contents | true

### @hibernate.subclass (0..1)

Declare the current class as subclass

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
table | text |  | The name of its database table | false
discriminator-value | text |  | A value that distinguishes the particular subclass | false
lazy | bool |  | Specifies the class itself to use for CGLIB proxy interface Default value(s): false | false
proxy | text |  | Specifies an interface to use for CGLIB proxies | false
dynamic-update | bool |  | Specifies that only changed columns should appear in the SQL UPDATE Default value(s): false | false
dynamic-insert | bool |  | Specifies that null columns should not appear in the SQL INSERT Default value(s): false | false

## @hibernate Method Level Tag Usage

### @hibernate.any (0..1)

Declares any type mapping

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
id-type | text |  | Type of the identifier | true
meta-type | text |  | Meta-type | false
cascade | text |  | Cascaded operations | true
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.any-column (0..*)

Defines a column for the any type mapping

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | The column name | true
length | text |  | The column length | false
unique | bool |  | Is the column unique | false
not-null | bool |  | Is the column nullable | false
index | text |  | The name of an index | false
unique-key | text |  | The name of a unique constraint | false
sql-type | text |  | The SQL column type | false

### @hibernate.array (0..1)

Defines an array

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
table | text |  | The name of the collection table (not used for one-to-many associations) | false
schema | text |  | The name of a table schema to override the schema declared | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Valid options are: all none save-update delete | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
where | text |  | An SQL WHERE condition | false
batch-size | text |  | Specify a "batch size" for lazily fetching instances of this collection | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.bag (0..1)

Defines a bag

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
inverse | bool |  | If inverse collection | false
table | text |  | The name of the collection table (not used for one-to-many associations) | false
schema | text |  | The name of a table schema to override the schema declared | false
lazy | bool |  | Enable lazy initialization Default value(s): false | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Default value(s): none Valid options are: all none save-update delete all-delete-orphan delete-orphan | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
order-by | text |  | Specify table columns that define the iteration order | false
where | text |  | An SQL WHERE condition | false
batch-size | text |  | Specify a "batch size" for lazily fetching instances of this collection | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.collection-cache (0..1)

Enables caching

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
usage | text |  | Defines the cache semantics Valid options are: read-write nonstrict-read-write read-only transactional | true

### @hibernate.collection-composite-element (0..1)

Declares a composite collection element

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
class | text |  | The name of the element class | true

### @hibernate.collection-element (0..1)

Declares a collection element

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true
type | text |  | The Hibernate type | true
length | text |  | The length of the mapped database table column | false
not-null | bool |  | Is the column nullable | false
unique | bool |  | Is the column unique | false

### @hibernate.collection-index (0..1)

Declares a collection index. This will be used as index for the arrays, sotring field for the lists or keys in the map

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true
type | text |  | The Hibernate type | false
length | text |  | The length of the mapped database table column | false

### @hibernate.collection-jcs-cache (0..1)

Enables caching (deprecated)

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
usage | text |  | Defines the cache semantics Valid options are: read-write nonstrict-read-write read-only transactional | true

### @hibernate.collection-key (0..1)

Declares a collection key

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true

### @hibernate.collection-key-column (0..*)

Defines a column for a collection key

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | The column name | true
length | text |  | The column length | false
unique | bool |  | Is the column unique | false
not-null | bool |  | Is the column nullable | false
index | text |  | The name of an index | false
unique-key | text |  | The name of a unique constraint | false
sql-type | text |  | The SQL column type | false

### @hibernate.collection-many-to-many (0..1)

Declares a many-to-many relationship

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true
class | text |  | Fully qualified class name | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false

### @hibernate.collection-one-to-many (0..1)

Declares a one-to-many relationship

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
class | text |  | Fully qualified class name of the associated class | false

### @hibernate.column (0..*)

Customize column mapping

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | The column name | true
length | text |  | The column length | false
unique | bool |  | Is the column unique | false
not-null | bool |  | Is the column nullable | false
index | text |  | The name of an index | false
unique-key | text |  | The name of a unique constraint | false
sql-type | text |  | The SQL column type | false
formula | text |  | An SQL expression that defines the value for a computed property. Computed properties do not have a column mapping of their own. | false

### @hibernate.component (0..1)

Declares a component

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
class | text |  | A fully qualified class name | false
prefix | text |  | When multiple Java fields are of the same component datatype, use this to specify a discriminating column-name-prefix. Properties that are included which have a @hibernate.property column="xxx" attribute will not be prefixed. If you want to shorten a property column-name and prefix it for the component, use @hibernate.column name="xxx" on the property. | false

### @hibernate.generator-param (0..*)

Specifies an id generator parameter value

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | The name of the parameter | true
value | text |  | The parameter value | true

### @hibernate.id (0..1)

Declares an identifier property

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | false
type | text |  | The Hibernate type | false
length | text |  | The length of the mapped database table column | false
unsaved-value | text |  | A value that distinguishes transient instances with existing persistent state from new transient instances Default value(s): null | false
generator-class | text |  | The key generator class Valid options are: uuid.hex uuid.string increment assigned native identity sequence hilo seqhilo foreign | true
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.index-many-to-many (0..1)

Declares many-to-many collection index. Will be used as map key for ternary associations. Shall be entity?

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | true
class | text |  | Entity to be used as key in the ternary association maps | true
foreign-key | text |  | The name of the foreign key constraint to associate with this association. | false

### @hibernate.list (0..1)

Defines a List

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
table | text |  | The name of the collection table (not used for one-to-many associations) | false
schema | text |  | The name of a table schema to override the schema declared | false
lazy | bool |  | Enable lazy initialization | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated objects Default value(s): none Valid options are: all none save-update delete all-delete-orphan delete-orphan | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
where | text |  | An SQL WHERE condition | false
batch-size | text |  | Specify a "batch size" for lazily fetching instances of this collection | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.many-to-any (0..1)

Declares many-to-any type mapping

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
id-type | text |  | Type of the identifier | true
meta-type | text |  | Meta-type | false

### @hibernate.many-to-any-column (0..*)

Defines a column for the many-to-any type mapping

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | The column name | true
length | text |  | The column length | false
unique | bool |  | Is the column unique | false
not-null | bool |  | Is the column nullable | false
index | text |  | The name of an index | false
unique-key | text |  | The name of a unique constraint | false
sql-type | text |  | The SQL column type | false

### @hibernate.many-to-one (0..1)

Declares a many-to-one association

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | false
class | text |  | The name of the associated class | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Default value(s): none Valid options are: all none save-update delete | false
not-null | bool |  | If the column is not nullable Default value(s): false | false
unique | bool |  | If the column is unique Default value(s): false | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
insert | bool |  | Should the column appear in the SQL INSERT. Only applies for version >= 2.0 | false
update | bool |  | Should the column appear in the SQL UPDATE. Only applies for version >= 2.0 | false
property-ref | text |  | The name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used. | false
foreign-key | text |  | The name of the foreign key constraint to associate with this association. | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false
unique | text |  | Enable the DDL generation of a unique constraint for the foreign-key column. Valid options are: true false | false

### @hibernate.map (0..1)

Defines a map

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
table | text |  | The name of the collection table (not used for one-to-many associations) | false
schema | text |  | The name of a table schema to override the schema declared | false
lazy | bool |  | Enable lazy initialization | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Valid options are: all save-update delete none all-delete-orphan delete-orphan | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
sort | text |  | Specify a sorted collection with natural sort order or a given comparator class | false
order-by | text |  | Specify table columns that define the iteration order | false
where | text |  | An SQL WHERE condition | false
batch-size | text |  | Specify a "batch size" for lazily fetching instances of this collection | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.one-to-one (0..1)

Declares a one-to-one association

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
class | text |  | The name of the associated class | false
property-ref | text |  | bi-directional reference to one-to-one table that holds the foreign key | false
constrained | bool |  | Is there a foreign key constraint | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Valid options are: all none save-update delete | false
outer-join | bool |  | Enable outer-join fetching for this association when hibernate.use_outer_join is set Default value(s): auto Valid options are: true false auto | false
foreign-key | text |  | The name of the foreign key constraint to associate with this association. | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.parent (0..1)

Declares a parent reference

Applies to: Hibernate

### @hibernate.primitive-array (0..1)

Defines a primitive-array

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
table | text |  | The name of the collection table (not used for one-to-many associations) | false
schema | text |  | The name of a table schema to override the schema declared | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Valid options are: all none save-update delete | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
where | text |  | An SQL WHERE condition | false
batch-size | text |  | Specify a "batch size" for lazily fetching instances of this collection | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.property (0..1)

Defines a property

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of the mapped database table column | false
type | text |  | The Hibernate type | false
length | text |  | The length of the mapped database table column | false
not-null | bool |  | If the column is not nullable | false
unique | bool |  | If the column is unique | false
insert | bool |  | Should the column appear in the SQL INSERT | false
update | bool |  | Should the column appear in the SQL UPDATE | false
formula | text |  | Formula for calculating the value of this proerty | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.set (0..1)

Defines a set

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
inverse | bool |  | If inverse collection Default value(s): false | false
table | text |  | Defaults to role name: the name of the collection table (not used for one-to-many associations) | false
schema | text |  | The name of a table schema to override the schema declared | false
lazy | bool |  | Enable lazy initialization Default value(s): false | false
cascade | text |  | Specifies which operations should be cascaded from the parent object to the associated object Valid options are: all none save-update delete all-delete-orphan delete-orphan | false
outer-join | text |  | Enable outer-join fetching Default value(s): auto Valid options are: true false auto | false
sort | text |  | Specify a sorted collection with natural sort order or a given comparator class | false
order-by | text |  | Specify table columns that define the iteration order | false
where | text |  | An SQL WHERE condition | false
batch-size | text |  | Specify a "batch size" for lazily fetching instances of this collection | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.timestamp (0..1)

Declares a timestamp property

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of an column holding the timestamp | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false

### @hibernate.version (0..1)

Declares a version property

Applies to: Hibernate

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
column | text |  | The name of a column holding the version number | false
type | text |  | The Hibernate type Valid options are: integer short long timestamp calendar | false
access | text |  | The strategy Hibernate should use for accessing the property value. Default value(s): property Valid options are: field property ClassName | false
unsaved-value | text |  | A version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from transient instances that were saved or loaded in a previous session (undefined specifies that the identifier property value should be used). Default value(s): undefined Valid options are: null negative undefined | false

## @hibernate Field Level Tag Usage