File: /var/www/html/unitime/JavaSource/RoomFeature.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!--
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*
* The Apereo Foundation licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*
-->
<hibernate-mapping package="org.unitime.timetable.model">
<class
name="RoomFeature"
table="room_feature"
lazy="true">
<cache include="non-lazy" usage="transactional"/>
<id
name="uniqueId"
column="uniqueid"
type="java.lang.Long">
<generator class="org.unitime.commons.hibernate.id.UniqueIdGenerator">
<param name="sequence">room_feature_seq</param>
</generator>
</id>
<discriminator
column="discriminator"
type="java.lang.String"
not-null="true"
length="10"/>
<property
name="label"
column="label"
type="java.lang.String"
not-null="true"
length="60"/>
<property
name="abbv"
column="abbv"
type="java.lang.String"
not-null="false"
length="60"/>
<property
name="description"
column="description"
type="java.lang.String"
not-null="false"
length="1000"/>
<set
name="rooms"
table="room_join_room_feature"
inverse="true">
<cache include="non-lazy" usage="transactional"/>
<key column="feature_id"/>
<many-to-many class="Location" column="room_id"/>
</set>
<many-to-one
name="featureType"
class="RoomFeatureType"
column="feature_type_id"
not-null="false"
foreign-key="fk_feature_type"/>
<subclass
name="GlobalRoomFeature"
extends="RoomFeature"
discriminator-value="global">
<property
name="sisReference"
column="sis_reference"
type="java.lang.String"
not-null="false"
length="20"/>
<property
name="sisValue"
column="sis_value"
type="java.lang.String"
not-null="false"
length="20"/>
<many-to-one
name="session"
class="Session"
column="session_id"
not-null="true"
foreign-key="fk_room_feature_session"/>
</subclass>
<subclass
name="DepartmentRoomFeature"
extends="RoomFeature"
discriminator-value="department">
<many-to-one
name="department"
class="Department"
column="department_id"
not-null="true"
lazy="false"
foreign-key="fk_room_feature_dept"/>
</subclass>
</class>
</hibernate-mapping>