Skip to content
Snippets Groups Projects
Dbxref.xml 2.59 KiB
Newer Older
  • Learn to ignore specific revisions
  • tjc's avatar
    tjc committed
    <?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="Dbxref"> 
     
    
    tjc's avatar
    tjc committed
      <typeAlias alias="ChadoFeatureDbxref"
            type="uk.ac.sanger.artemis.chado.ChadoFeatureDbxref"/>
      
    
    tjc's avatar
    tjc committed
      <typeAlias alias="ChadoDbxref"
            type="uk.ac.sanger.artemis.chado.ChadoDbxref"/>
    
    tjc's avatar
    tjc committed
      
        <typeAlias alias="ChadoDb"
            type="uk.ac.sanger.artemis.chado.ChadoDb"/>
               
      <resultMap id="select-feature-dbxref" 
                   class="ChadoFeatureDbxref">
        <result property="feature_id"       column="feature_id"/>
        <result property="dbxref.db.name"   column="name"/>
        <result property="dbxref.accession" column="accession"/>
        <result property="dbxref.version"   column="version"/>
      </resultMap>
    
    tjc's avatar
    tjc committed
            
    
    tjc's avatar
    tjc committed
      <select id="getDbxref" parameterClass="uk.ac.sanger.artemis.chado.ChadoFeature"
    
    tjc's avatar
    tjc committed
                             resultMap="select-feature-dbxref">
       	SELECT db.name, dbx.accession, dbx.version, dbx_f.feature_id
    
    tjc's avatar
    tjc committed
     	FROM feature_dbxref dbx_f 
    
    tjc's avatar
    tjc committed
            LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id
            LEFT JOIN db ON db.db_id=dbx.db_id 
    
    tjc's avatar
    tjc committed
            LEFT JOIN feature f ON dbx_f.feature_id=f.feature_id
    
    tjc's avatar
    tjc committed
            <isNotNull property="uniquename"> 
              WHERE f.uniquename=#uniquename#
            </isNotNull>
    
    tjc's avatar
    tjc committed
            <isGreaterThan property="id" compareValue="0">
    
    tjc's avatar
    tjc committed
              WHERE dbx_f.feature_id=$id$
    
    tjc's avatar
    tjc committed
            </isGreaterThan>
    
    tjc's avatar
    tjc committed
            ORDER BY f.type_id,  uniquename
      </select> 
    
    tjc's avatar
    tjc committed
      
    
    tjc's avatar
    tjc committed
      <select id="getDbId" parameterClass="ChadoDb"
    
    tjc's avatar
    tjc committed
                           resultClass="java.lang.Integer">
        SELECT db_id FROM db WHERE name=#name#
      </select>
      
    
    tjc's avatar
    tjc committed
      <select id="getDbxrefId" parameterClass="ChadoDbxref"
    
    tjc's avatar
    tjc committed
                               resultClass="java.lang.Integer">
        SELECT dbxref_id FROM dbxref WHERE accession=#accession#
    
    tjc's avatar
    tjc committed
               AND db_id=$db_id$;
    
    tjc's avatar
    tjc committed
      </select>
      
      <!-- WRITE BACK -->
    
    tjc's avatar
    tjc committed
      <delete id="deleteFeatureDbxref" parameterClass="ChadoFeatureDbxref">
    
    tjc's avatar
    tjc committed
         DELETE FROM feature_dbxref 
    
    tjc's avatar
    tjc committed
         WHERE dbxref_id=
    
    tjc's avatar
    tjc committed
               (SELECT dbxref_id FROM dbxref WHERE accession=#dbxref.accession#
                AND db_id=(SELECT db_id FROM db WHERE name=#dbxref.db.name#))
    
    tjc's avatar
    tjc committed
         AND feature_id=$feature_id$
      </delete>
      
    
    tjc's avatar
    tjc committed
      <insert id="insertFeatureDbxref" parameterClass="ChadoFeatureDbxref">
    
    tjc's avatar
    tjc committed
        INSERT INTO feature_dbxref 
    
    tjc's avatar
    tjc committed
               (feature_id, dbxref_id, is_current)
               VALUES
               ($feature_id$, $dbxref_id$, $current$)
      </insert>
      
    
    tjc's avatar
    tjc committed
      <insert id="insertDbxref" parameterClass="ChadoDbxref">
    
    tjc's avatar
    tjc committed
        INSERT INTO dbxref ( db_id, accession ) 
               VALUES ($db_id$, #accession#)
      </insert>
    
    tjc's avatar
    tjc committed
    
    </sqlMap>