Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • gh-pages
  • build-process-upgrade-merge
  • eb-apollo-generate_names
  • BT5_travis
  • hello_github
  • v18.1.0
  • v18.0.3
  • v18.0.2
  • v18.0.1
  • v18.0.0
  • v18.0.0-RC1
  • v17.0.1
  • v17.0.0
  • v16.0.17
  • v16.0.0
  • v15.0.0
  • v14.0.0
  • v13.2.0
19 results

FeatureRelationship.xml

Blame
  • FeatureRelationship.xml 3.21 KiB
    <?xml version="1.0" encoding="UTF-8" ?> 
     
    <!DOCTYPE sqlMap 
        PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" 
        "http://ibatis.apache.org/dtd/sql-map-2.dtd"> 
     
    
    <sqlMap namespace="FeatureRelationship">
    
            
         <typeAlias alias="FeatureRelationship"
            type="org.gmod.schema.sequence.FeatureRelationship"/>
         
    	 <resultMap id="map-basic-feature-relationship" class="FeatureRelationship">
    		<result property="featureRelationshipId" column="feature_relationship_id"/>
      	    <result property="cvTerm.cvTermId" column="relation_type_id"/>
      	    <result property="rank" column="rank"/>
      	    <result property="value" column="relation_value" />
         </resultMap>
    	   
         <resultMap id="map-feature-relationship-for-objectId" class="FeatureRelationship" 
    		        extends="map-basic-feature-relationship">
    		<result property="featureByObjectId.featureId" column="object_id"/>
         </resultMap>
    
    	 <resultMap id="map-feature-relationship-for-subjectId" class="FeatureRelationship"
    		        extends="map-basic-feature-relationship">
    		<result property="featureBySubjectId" column="subject_id" 
    			                                  select="getLazyFeatureById"/>
         </resultMap>
    	
        <resultMap id="select-relationship" class="FeatureRelationship">
    		<result property="featureRelationshipId" column="feature_relationship_id"/>
            <result property="featureBySubjectId" column="subject_id" 
    			                                  select="getLazyFeatureById" />
            <result property="featureByObjectId"  column="object_id"
    			                                  select="getLazyFeatureById" />
            <result property="value" column="value" />
            <result property="rank" column="rank" />
            <result property="cvTerm" column="type_id" select="getCvtermByCvTermId" />
         </resultMap>
         
         <!--  select feature_relationship -->
         <select id="getFeatureRelationship" resultMap="select-relationship">
           SELECT feature_relationship_id, subject_id, object_id, type_id, value, rank 
           FROM feature_relationship
           WHERE
             <dynamic>
                 <isNotNull property="object_id">                        
                   object_id=#object_id#
                 </isNotNull>
                 <isNotNull property="subject_id">                        
                   subject_id=#subject_id#
                 </isNotNull>
             </dynamic>
         </select>
    
    
        <update id="updateFeatureRelationshipsForSubjectId" 
               parameterClass="FeatureRelationship">
          UPDATE feature_relationship
          SET
            rank=$rank$, type_id=$cvTerm.cvTermId$
          WHERE subject_id=
               ( SELECT feature_id FROM feature WHERE uniquename=#featureBySubjectId.uniqueName# )
          AND   object_id=
               ( SELECT feature_id FROM feature WHERE uniquename=#featureByObjectId.uniqueName# )
       </update>
       
       <insert id="insertFeatureRelationship" 
               parameterClass="FeatureRelationship">
          INSERT INTO feature_relationship
            ( subject_id, object_id, type_id, rank )
          VALUES
            ( (SELECT feature_id FROM feature WHERE uniquename=#featureBySubjectId.uniqueName#),
              (SELECT feature_id FROM feature WHERE uniquename=#featureByObjectId.uniqueName#),
              $cvTerm.cvTermId$, $rank$ )
       </insert>
       
    </sqlMap>