Files
alfresco-community-repo/source/java/org/alfresco/repo/avm/hibernate/AVMNode.hbm.xml
2006-05-09 23:22:15 +00:00

99 lines
3.9 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="org.alfresco.repo.avm.hibernate">
<class table="avm_nodes" lazy="true" abstract="true"
name="AVMNodeBeanImpl"
proxy="AVMNodeBean"
optimistic-lock="version">
<cache usage="read-write"/>
<id name="id" column="id" type="long">
</id>
<discriminator column="class_type" type="string" length="20"></discriminator>
<version column="vers" name="vers" type="long"></version>
<many-to-one name="ancestor" column="ancestor_id"
class="AVMNodeBeanImpl">
</many-to-one>
<many-to-one name="mergedFrom" column="merged_from"
class="AVMNodeBeanImpl">
</many-to-one>
<many-to-one name="parent" column="parent_id"
class="DirectoryNodeBeanImpl">
</many-to-one>
<!-- This should really be not null, but hibernate doesn't provide
a way of saving both a RepositoryBean and an AVMNodeBean,
that refer to new instances of each other. -->
<many-to-one name="repository" column="repository"
class="RepositoryBeanImpl" cascade="save-update">
</many-to-one>
<property name="versionID" type="long" column="version_id"
not-null="true">
</property>
<property name="branchID" type="long" column="branch_id"
not-null="true">
</property>
<property name="isNew" column="is_new" type="boolean"
not-null="true">
</property>
<subclass name="DirectoryNodeBeanImpl"
proxy="DirectoryNodeBean"
abstract="true">
<subclass
name="LayeredDirectoryNodeBeanImpl"
proxy="LayeredDirectoryNodeBean" discriminator-value="layereddirectory">
<property name="layerID" column="layer_id" type="long"></property>
<property name="indirection" column="indirection" type="string" length="511"></property>
<property name="primaryIndirection" column="primary_indirection" type="boolean"></property>
<map name="added" cascade="all">
<key column="directory_id"></key>
<map-key type="string" column="name"></map-key>
<composite-element class="org.alfresco.repo.avm.hibernate.DirectoryEntry">
<property name="type" column="type_name"
type="string" length="30" not-null="true">
</property>
<many-to-one name="child"
class="org.alfresco.repo.avm.hibernate.AVMNodeBeanImpl"
cascade="save-update" not-null="true">
</many-to-one>
</composite-element>
</map>
<set name="deleted" table="deleted_children"
fetch="join" cascade="all">
<key column="directory_id"></key>
<element type="string" column="name"></element>
</set>
</subclass>
<subclass name="PlainDirectoryNodeBeanImpl"
discriminator-value="plaindirectory" proxy="PlainDirectoryNodeBean">
<property name="isRoot" column="is_root" type="boolean"/>
<map name="children" cascade="all">
<key column="directory_id"></key>
<map-key type="string" column="name"></map-key>
<composite-element class="org.alfresco.repo.avm.hibernate.DirectoryEntry">
<property name="type" type="string" not-null="true" length="30" column="type_name">
</property>
<many-to-one name="child"
class="org.alfresco.repo.avm.hibernate.AVMNodeBeanImpl"
not-null="true" cascade="save-update">
</many-to-one>
</composite-element>
</map>
</subclass>
</subclass>
<subclass name="FileNodeBeanImpl"
proxy="FileNodeBean"
abstract="true">
<subclass discriminator-value="plainfile"
name="PlainFileNodeBeanImpl"
proxy="PlainFileNodeBean">
<many-to-one name="content" column="content_id"
class="ContentBeanImpl" fetch="join" cascade="save-update">
</many-to-one>
</subclass>
<subclass name="LayeredFileNodeBeanImpl"
discriminator-value="layeredfile" proxy="LayeredFileNodeBean">
<property name="indirection" type="string" length="511" column="indirection"></property>
</subclass>
</subclass>
</class>
</hibernate-mapping>