Thanks for the reply.
There is nothing much to it. A simple object creation and a save.
...
TDUserDomain domain = new TDUserDomain(root.getTypePathRoot(),
domainType, domainId, domainName);
currentSession().save(domain);
...
constructor signature is:
TDUserDomain(
TDTypePath typePathRoot,
TDComplexType domainType,
String domainId,
String name)
Creating and persisting instances of the TDComplexType and TDTypePath give no problem.
The same class model did work in version 2.1.x and 3alpha1.
TDUserDomain is subclass of TDDomain is a subclass of TDItem is a subclass of TDModelObject.
The mapping file for the TDModelObject class hierarchy.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class
name="nl.tresparc.model.TDModelObject"
dynamic-update="false"
dynamic-insert="false"
discriminator-value="nl.tresparc.model.TDModelObject"
>
<id
name="id"
column="id"
type="long"
access="field"
unsaved-value="null"
>
<generator class="native">
</generator>
</id>
<discriminator
type="string"
/>
<version
name="version"
type="timestamp"
column="version"
access="field"
/>
<many-to-one
name="acl"
class="nl.tresparc.model.TDAcl"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="field"
column="acl"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDModelObject.xml
containing the additional properties and place it in your merge dir.
-->
<subclass
name="nl.tresparc.model.TDProperty"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="cardinality"
type="int"
update="true"
insert="true"
access="field"
column="cardinality"
/>
<many-to-one
name="parent"
class="nl.tresparc.model.TDComplexType"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="parent_id"
/>
<many-to-one
name="type"
class="nl.tresparc.model.TDComplexType"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="type_id"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDProperty.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDEnumerationEntry"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="label"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="label"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDEnumerationEntry.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDCurrency"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="isoCode"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="isoCode"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDCurrency.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDComplexType"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="internalName"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="internalName"
/>
<property
name="name"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="name"
/>
<property
name="view"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="pgview"
/>
<property
name="icon"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="icon"
/>
<many-to-one
name="baseType"
class="nl.tresparc.model.TDComplexType"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="base_type_id"
/>
<list
name="typeProperties"
lazy="false"
inverse="false"
access="field"
cascade="save-update"
>
<key
column="parent_id"
/>
<index
column="parent_idx"
/>
<one-to-many
class="nl.tresparc.model.TDProperty"
/>
</list>
<property
name="itemClassName"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="itemClassName"
/>
<property
name="namespace"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="namespace"
/>
<property
name="cardinality"
type="int"
update="true"
insert="true"
access="field"
column="cardinality"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDComplexType.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="label"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="label"
/>
<many-to-one
name="owner"
class="nl.tresparc.model.TDDomain"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="owner"
/>
<many-to-one
name="parent"
class="nl.tresparc.model.TDItem"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="parent_id"
not-null="false"
/>
<property
name="stringValue"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="stringValue"
/>
<list
name="children"
lazy="true"
inverse="false"
access="field"
cascade="all"
>
<key
column="parent_id"
/>
<index
column="parent_idx"
/>
<one-to-many
class="nl.tresparc.model.TDItem"
/>
</list>
<property
name="creationDate"
type="long"
update="true"
insert="true"
access="field"
column="creationDate"
/>
<property
name="closedDateTime"
type="java.lang.Long"
update="true"
insert="true"
access="field"
column="closedDateTime"
/>
<many-to-one
name="typePath"
class="nl.tresparc.model.TDTypePath"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="typePath"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDItem.xml
containing the additional properties and place it in your merge dir.
-->
<subclass
name="nl.tresparc.model.TDEmailAddressItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="email"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="email"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDEmailAddressItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDDBCItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDBCItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDDateItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="internalDate"
type="long"
update="true"
insert="true"
access="field"
column="internalDate"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDateItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDConfigurationItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDConfigurationItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDMemberInGroupItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDMemberInGroupItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDIndexEntryItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDIndexEntryItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDMultilineStringItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="string"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="string"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDMultilineStringItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDDateTimeItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="dateTime"
type="long"
update="true"
insert="true"
access="field"
column="dateTime"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDateTimeItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDEMDItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDEMDItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDHyperlinkItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="url"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="url"
/>
<property
name="newWindow"
type="boolean"
update="true"
insert="true"
access="field"
column="newWindow"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDHyperlinkItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDReferenceItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="since"
type="long"
update="true"
insert="true"
access="field"
column="since"
/>
<many-to-one
name="reference"
class="nl.tresparc.model.TDItem"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="reference_id"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDReferenceItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDEMDManager"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDEMDManager.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDMemberOfGroupItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDMemberOfGroupItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDAmountItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="amount"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="amount"
/>
<property
name="currency"
type="nl.tresparc.model.TDCurrency"
update="true"
insert="true"
access="field"
column="currency"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDAmountItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDExclusivePropertyItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDExclusivePropertyItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDOwnGroupItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDOwnGroupItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDIndexItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDIndexItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDAppointmentItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDAppointmentItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDTimeItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDTimeItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDFileItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="mimeType"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="mimeType"
/>
<property
name="content"
type="binary"
update="true"
insert="true"
access="field"
column="content"
/>
<property
name="fileSize"
type="long"
update="true"
insert="true"
access="field"
column="fileSize"
/>
<property
name="compression"
type="int"
update="true"
insert="true"
access="field"
column="compression"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDFileItem.xml
containing the additional properties and place it in your merge dir.
-->
<subclass
name="nl.tresparc.model.TDDocumentItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDocumentItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDPictureItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDPictureItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
</subclass>
<subclass
name="nl.tresparc.model.TDWasteBasketItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDWasteBasketItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDEnumerationItem"
dynamic-update="false"
dynamic-insert="false"
>
<many-to-one
name="choice"
class="nl.tresparc.model.TDEnumerationEntry"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="field"
column="choice"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDEnumerationItem.xml
containing the additional properties and place it in your merge dir.
-->
<subclass
name="nl.tresparc.model.TDDBCState"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDBCState.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
</subclass>
<subclass
name="nl.tresparc.model.TDPasswordItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDPasswordItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDNumberItem"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="number"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="number"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDNumberItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDOwnerOfGroupItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDOwnerOfGroupItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDRepresentativeInGroupItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDRepresentativeInGroupItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDDomainManagerItem"
dynamic-update="false"
dynamic-insert="false"
>
<many-to-one
name="managedGroup"
class="nl.tresparc.model.TDGroupDomain"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="manager_group_id"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDomainManagerItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDRepresentativeOfGroupItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDRepresentativeOfGroupItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDStringItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDStringItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDAgendaItem"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDAgendaItem.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDDomain"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="domainId"
type="java.lang.String"
update="true"
insert="true"
access="field"
column="domainId"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDomain.xml
containing the additional properties and place it in your merge dir.
-->
<subclass
name="nl.tresparc.model.TDGroupDomain"
dynamic-update="false"
dynamic-insert="false"
>
<list
name="members"
lazy="false"
inverse="false"
access="field"
cascade="none"
>
<key
column="group_id"
/>
<index
column="member_idx"
/>
<many-to-many
class="nl.tresparc.model.TDDomain"
column="member_id"
outer-join="auto"
/>
</list>
<list
name="representatives"
lazy="false"
inverse="false"
access="field"
cascade="none"
>
<key
column="group_id"
/>
<index
column="representative_index"
/>
<many-to-many
class="nl.tresparc.model.TDDomain"
column="representative_id"
outer-join="auto"
/>
</list>
<many-to-one
name="managedBy"
class="nl.tresparc.model.TDDomainManagerItem"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="managed_by"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDGroupDomain.xml
containing the additional properties and place it in your merge dir.
-->
<subclass
name="nl.tresparc.model.TDEveryoneGroup"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDEveryoneGroup.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
<subclass
name="nl.tresparc.model.TDOrganizationDomain"
dynamic-update="false"
dynamic-insert="false"
>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDOrganizationDomain.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
</subclass>
<subclass
name="nl.tresparc.model.TDUserDomain"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="lastLoginDate"
type="long"
update="true"
insert="true"
access="field"
column="lastLoginDate"
/>
<property
name="locked"
type="boolean"
update="true"
insert="true"
access="field"
column="locked"
/>
<property
name="administrator"
type="boolean"
update="true"
insert="true"
access="field"
column="administrator"
/>
<property
name="password"
type="binary"
update="true"
insert="true"
access="field"
column="password"
/>
<many-to-one
name="owner"
class="nl.tresparc.model.TDDomain"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="field"
column="owner"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDUserDomain.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
</subclass>
</subclass>
<subclass
name="nl.tresparc.model.TDDomainSize"
dynamic-update="false"
dynamic-insert="false"
>
<property
name="currentSize"
type="long"
update="true"
insert="true"
access="field"
column="currentSize"
/>
<property
name="lastCalculatedSize"
type="long"
update="true"
insert="true"
access="field"
column="lastCalculatedSize"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-TDDomainSize.xml
containing the additional properties and place it in your merge dir.
-->
</subclass>
</class>
</hibernate-mapping>
|