Subversion Repositories bacoAlunos

Rev

Rev 1967 | 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.Course" table="course" 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="name" type="string"/>
        <property name="nameEn" type="string"/>
        <property name="nameEs" type="string"/>
        <property name="nameFr" type="string"/>
        <property name="description" type="text"/>
        <property name="code" type="string"/>
        <property name="importYear" type="string" index="importYearIndex"/>
        <!--<property name="institutionalCode" type="string"/>-->
        <property name="externalSiteServer" type="string"/>
        <property name="externalSitePath" type="string"/>
        <property name="degree" type="string" index="degreeIndex"/>
        <property name="status" type="boolean"/>
        <property name="showStudiesPlan" type="boolean">
            <column name="showStudiesPlan" default="false"/>
        </property>
        <property name="cacheWebDocument" type="text">
            <column name="cacheWebDocument" sql-type="MEDIUMTEXT"/>
        </property>
        <!--legacy-->
        <property name="studiesPlan" type="string" index="studiesPlanIndex"/>
        <property name="validationRole" type="string" index="validationRoleIndex"/>
        <property name="area" type="string" index="areaIndex" insert="false" update="false"/>
        <property name="userGroupStudents" type="string"/>
        <property name="json" type="text">
            <column name="json" sql-type="MEDIUMTEXT"/>
        </property>
        <many-to-one name="department" class="pt.estgp.estgweb.domain.CourseDepartment" outer-join="true" lazy="false">
            <column name="area" length="20" sql-type="VARCHAR"/>
        </many-to-one>
        <many-to-one name="courseContents" class="pt.estgp.estgweb.domain.PageSection" lazy="proxy" outer-join="false">
            <column name="courseContents"/>
        </many-to-one>
        <many-to-one name="director" class="pt.estgp.estgweb.domain.Teacher" outer-join="false" lazy="proxy"/>
        <many-to-one name="coordinator" class="pt.estgp.estgweb.domain.Teacher" outer-join="false" lazy="proxy"/>
        <set name="studiesPlans" order-by="id desc" lazy="true">
            <key column="course_id"/>
            <one-to-many class="pt.estgp.estgweb.domain.CourseStudiesPlan"/>
        </set>
        <!--<set name="users" order-by="user.name asc" lazy="true">
           <key column="course_id"/>
           <one-to-many class="pt.estgp.estgweb.domain.CourseUserAssociation"/>
       </set>-->
        <set name="courseUnits" order-by="name asc" lazy="true">
            <key column="course"/>
            <one-to-many class="pt.estgp.estgweb.domain.CourseUnit"/>
        </set>
        <set name="courseYears" order-by="importYear asc" lazy="true">
            <key column="course_id"/>
            <one-to-many class="pt.estgp.estgweb.domain.CourseYear"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.CourseImpl" discriminator-value="CourseImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.CourseYear" table="course_year" 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="importYear" type="string" index="importYearIndex"/>
        <property name="separatedTurmas" type="boolean">
            <column name="separatedTurmas" default="false"/>
        </property>

                                <!-- Req1-->
        <property name="CourseReportDocument" type="text">
            <column name="CourseReportDocument" sql-type="LONGTEXT"></column>
        </property>
        <!-- *** -->


        <many-to-one name="course" class="pt.estgp.estgweb.domain.Course" outer-join="true" lazy="false" column="course_id"/>
        <subclass name="pt.estgp.estgweb.domain.CourseYearImpl" discriminator-value="CourseYearImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.CourseStudiesPlan" table="course_studies_plan" 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="version" type="int"/>
        <property name="versionDescription" type="string"/>
        <property name="importLog" type="text">
            <column name="importLog" sql-type="MEDIUMTEXT"/>
        </property>
        <property name="xml" type="text">
            <column name="xml" sql-type="MEDIUMTEXT"/>
        </property>
        <property name="json" type="text">
            <column name="json" sql-type="MEDIUMTEXT"/>
        </property>
        <many-to-one name="course" class="pt.estgp.estgweb.domain.Course" outer-join="true" lazy="false" column="course_id"/>
        <subclass name="pt.estgp.estgweb.domain.CourseStudiesPlanImpl" discriminator-value="CourseYearImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.CourseDepartment" table="course_department" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="sigla" type="string" length="20">
            <generator class="assigned"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db"   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <!--Este deixa de existir procurar todos os sitios onde isto está
       podemos ainda reimplementar o método para ir buscar à escola-->
        <!--<property name="institutionalCode" type="string"/>-->
        <property name="active" type="boolean">
            <column name="active" default="true"/>
        </property>
        <property name="name" type="string"/>
        <property name="nameEn" type="string"/>
        <property name="nameEs" type="string"/>
        <property name="nameFr" type="string"/>
        <property name="directorRole" type="string"/>
        <property name="boardRole" type="string"/>
        <!--Todo colocar aqui o director e vice director de departamento Remover do Curso ou no proprio curso afeta aqui-->
        <many-to-one name="courseSchool" class="pt.estgp.estgweb.domain.CourseSchoolImpl" outer-join="true" lazy="false" column="school_id"/>

        <set name="teachers" order-by="name asc" lazy="true">
            <key column="departmentSigla"/>
            <one-to-many class="pt.estgp.estgweb.domain.TeacherImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.CourseDepartmentImpl" discriminator-value="CourseDepartmentImpl"/>
    </class>


    <class name="pt.estgp.estgweb.domain.CourseSchool" table="course_school" 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="institutionalCode" type="string"/>
        <property name="initials" type="string"/>
        <property name="active" type="boolean">
            <column name="active" default="true"/>
        </property>
        <property name="name" type="string"/>
        <property name="nameEn" type="string"/>
        <property name="nameEs" type="string"/>
        <property name="nameFr" type="string"/>

        <property name="schoolDirectorRole" type="string"/>
        <property name="schoolBoardRole" type="string"/>
        <property name="schoolSecretariadoRole" type="string"/>

        <property name="ctcPresidentRole" type="string"/>
        <property name="ctcMemberRole" type="string"/>
        <property name="ctcSecretariadoRole" type="string"/>

        <property name="pedagogicoPresidentRole" type="string"/>
        <property name="pedagogicoMemberRole" type="string"/>
        <property name="pedagogicoSecretariadoRole" type="string"/>

        <property name="funcionarioRole" type="string"/>
        <property name="studentRole" type="string"/>
        <property name="teacherRole" type="string"/>

        <set name="departments" order-by="name asc" lazy="true">
            <key column="school_id"/>
            <one-to-many class="pt.estgp.estgweb.domain.CourseDepartmentImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.CourseSchoolImpl" discriminator-value="CourseSchoolImpl"/>
    </class>


</hibernate-mapping>