An
ordinary association to another persistent
class is declared using a many-to-one
element. The relational model is a many-to-one
association: a foreign key in one table
is referencing the primary key column(s)
of the target table.
<many-to-one |
|
name="propertyName"
column="column_name"
class="ClassName"
cascade="cascade_style"
fetch="join|select"
update="true|false"
insert="true|false"
property-ref="propertyNameFromAssociatedClass"
access="field|property|ClassName"
unique="true|false"
not-null="true|false"
optimistic-lock="true|false"
lazy="true|false"
entity-name="EntityName"
|
(1)
(2)
(3)
(4)
(5)
(6)
(6)
(7)
(8)
(9)
(10)
(11)
(12) |
/> |
(1) |
name:
The name of the property. |
(2) |
column
(optional): The name of the foreign
key column. This may also be specified
by nested <column> element(s).
|
(3) |
class
(optional - defaults to the property
type determined by reflection): The
name of the associated class. |
(4) |
cascade
(optional): Specifies which operations
should be cascaded from the parent
object to the associated object. |
(5) |
join
(optional - defaults to select): Chooses
between outer-join fetching or sequential
select fetching. |
(6) |
update,
insert (optional - defaults to true)
specifies that the mapped columns
should be included in SQL UPDATE and/or
INSERT statements. Setting both to
false allows a pure "derived"
association whose value is initialized
from some other property that maps
to the same colum(s) or by a trigger
or other application. |
(7) |
property-ref:
(optional) 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. |
(8) |
access
(optional - defaults to property):
The strategy Hibernate should use
for accessing the property value.
|
(9) |
unique
(optional): Enable the DDL generation
of a unique constraint for the foreign-key
column. Also, allow this to be the
target of a property-ref. This makes
the association multiplicity effectively
one to one. |
(10) |
not-null
(optional): Enable the DDL generation
of a nullability constraint for the
foreign key columns. |
(11) |
optimistic-lock
(optional - defaults to true): Specifies
that updates to this property do or
do not require acquisition of the
optimistic lock. In other words, dertermines
if a version increment should occur
when this property is dirty. |
(12) |
lazy
(optional - defaults to false): Specifies
that this property should be fetched
lazily when the instance variable
is first accessed (requires build-time
bytecode instrumentation). |
A typical many-to-one declaration looks
as simple as this:
<many-to-one
name="product" class="Product"
column="PRODUCT_ID"/>
|
|