Subversion Repositories bacoAlunos

Rev

Rev 1703 | Rev 1728 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
       PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="pt.estgp.estgweb.domain.RepositoryFile" table="repositoryfile" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db"   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" outer-join="true" lazy="proxy"/>
        <many-to-one name="lastVersion" class="pt.estgp.estgweb.domain.RepositoryFileVersion" outer-join="true" lazy="false"/>
        <property name="accessControl" type="string"/>
        <property name="sourceModule" type="pt.estgp.estgweb.services.data.types.AbstractRepositorySourceModuleEnhancedType"/>
        <property name="deleted" type="boolean" index="deletedIndex"/>
        <set name="repositoryFileVersions" lazy="true" order-by="saveDate desc">
            <key column="repositoryFile"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryFileVersionImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.RepositoryFileImpl" discriminator-value="RepositoryFileImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.RepositoryFileVersion" table="repositoryfileversion" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <property name="saveDate" type="timestamp"/>
        <property name="name" type="string"/>
        <property name="contentType" type="string"/>
        <property name="extension" type="string"/>
        <property name="size" type="int"/>
        <property name="description" type="text"/>
        <property name="md5checksum" type="string" index="md5checksumIndex"/>
        <!--When version already exist we refer here for it in order to avoid duplicate in FileSystem-->
        <property name="mirrorFileVersionId" type="string"/>
        <many-to-one name="repositoryFile" class="pt.estgp.estgweb.domain.RepositoryFileImpl" outer-join="true" lazy="false"/>
        <subclass name="pt.estgp.estgweb.domain.RepositoryFileVersionImpl" discriminator-value="RepositoryFileVersionImpl"/>
    </class>


    <class name="pt.estgp.estgweb.domain.RepositoryDocument" table="repositorydocument" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db"   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="internalIdentifier" type="string"/>
        <property name="title" type="string">
            <column name="title" sql-type="TEXT"/>
        </property>
        <property name="subtitle" type="string"/>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="publisher" type="string"/>
        <property name="authorsJson" type="pt.estgp.estgweb.services.data.repositorydocuments.EnhancedDocumentPersons">
            <column name="authorsJson" sql-type="TEXT"/>
        </property>
        <property name="contributorsJson" type="pt.estgp.estgweb.services.data.repositorydocuments.EnhancedDocumentPersons">
            <column name="contributorsJson" sql-type="TEXT"/>
        </property>
        <property name="publishDate" type="timestamp"/>
        <property name="closeDate" type="timestamp"/>

        <many-to-one name="collection" class="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" outer-join="true" lazy="false"/>

        <set name="repositoryDocumentFiles" lazy="true" order-by="saveDate desc">
            <key column="repositoryDocument"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryDocumentFileImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentImpl" discriminator-value="RepositoryDocumentImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.RepositoryDocumentCollection" table="repositorydocumentcollection" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db"   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="name" type="string"/>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="legacyUrl" type="string"/>
        <many-to-one name="parent" class="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" outer-join="true" lazy="false"/>
        <set name="childs" lazy="true" order-by="name desc">
            <key column="parent"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" discriminator-value="RepositoryDocumentCollectionImpl"/>
    </class>


    <class name="pt.estgp.estgweb.domain.RepositoryDocumentFile" table="repositorydocumentfile" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db"   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="title" type="string">
            <column name="title" sql-type="TEXT"/>
        </property>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="repositoryFileProxy"
                 type="pt.estgp.estgweb.services.data.repositorydocuments.EnhancedRepositoryFileProxy">
            <column name="repositoryStream" sql-type="VARCHAR(255)"/>
        </property>
        <!--<property name="repositoryStream" type="string" index="repositoryStreamIndex">
           <column name="repositoryStream" sql-type="VARCHAR(255)"/>
       </property>-->

        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentFileImpl" discriminator-value="RepositoryDocumentFileImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.RepositoryDocumentInterface" table="repositorydocumentinterface" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db"   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="slug" type="string"/>
        <property name="adminDescription" type="string">
            <column name="admin_description" sql-type="TEXT"/>
        </property>
        <property name="repositoryInterface" type="pt.estgp.estgweb.services.data.repositorydocuments.EnhancedRepositoryInterface">
            <column name="repositoryInterfaceJson" sql-type="TEXT"/>
        </property>
        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentInterfaceImpl" discriminator-value="RepositoryDocumentInterfaceImpl"/>
    </class>
</hibernate-mapping>