-
tjc authored
git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@8870 ee4ac58c-ac51-4696-9907-e4b3aa274f04
tjc authoredgit-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@8870 ee4ac58c-ac51-4696-9907-e4b3aa274f04
FeatureDbXRef.xml 3.68 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="FeatureDbXRef">
<typeAlias alias="FeatureDbXRef"
type="org.gmod.schema.sequence.FeatureDbXRef"/>
<resultMap id="map-feature-dbxref"
class="FeatureDbXRef">
<result property="feature.featureId" column="feature_id"/>
<result property="dbXRef.db.name" column="name"/>
<result property="dbXRef.accession" column="accession"/>
<result property="dbXRef.version" column="version"/>
<result property="dbXRef.description" column="description"/>
<result property="current" column="is_current" nullValue="false"/>
</resultMap>
<resultMap id="map-feature-of-feature-dbxref"
class="Feature" groupBy="featureId">
<result property="featureId" column="feature_id"/>
<result property="featureDbXRefs" resultMap="FeatureDbXRef.map-feature-dbxref" />
</resultMap>
<select id="getFeatureDbXRef"
parameterClass="org.gmod.schema.sequence.Feature"
resultMap="map-feature-dbxref">
SELECT db.name, dbx.accession, dbx.version, dbx.description,
dbx_f.feature_id, dbx_f.is_current
FROM feature_dbxref dbx_f
LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id
LEFT JOIN db ON db.db_id=dbx.db_id
<!--LEFT JOIN feature f ON dbx_f.feature_id=f.feature_id-->
<isNotNull property="uniqueName">
WHERE dbx_f.feature_id=(SELECT feature_id FROM feature where uniquename=#uniqueName#)
</isNotNull>
<isGreaterThan property="featureId" compareValue="0">
WHERE dbx_f.feature_id=$featureId$
</isGreaterThan>
ORDER BY feature_id
</select>
<select id="getFeatureDbXRefsByFeatureId" resultMap="map-feature-of-feature-dbxref">
SELECT db.name, dbx.accession, dbx.version, dbx.description,
dbx_f.feature_id, dbx_f.is_current
FROM feature_dbxref dbx_f
LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id
LEFT JOIN db ON db.db_id=dbx.db_id
<!-- RIGHT JOIN feature f ON dbx_f.feature_id=f.feature_id -->
WHERE dbx_f.feature_id IN <iterate open="(" close=")" conjunction=","> $[]$ </iterate>
ORDER BY dbx_f.feature_id
</select>
<select id="getFeatureDbXRefsBySrcFeature"
parameterClass="org.gmod.schema.sequence.Feature"
resultMap="map-feature-dbxref">
SELECT db.name, dbx.accession, dbx.version, dbx.description,
dbx_f.feature_id, dbx_f.is_current
FROM featureloc fl
RIGHT JOIN feature_dbxref dbx_f ON fl.feature_id = dbx_f.feature_id
LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id
LEFT JOIN db ON db.db_id=dbx.db_id
WHERE srcfeature_id = $featureId$
<isGreaterThan property="featureLoc.fmin" compareValue="0" prepend="AND">
<![CDATA[ fl.fmin > $featureLoc.fmin$ AND fl.fmax < $featureLoc.fmax$ ]]>
</isGreaterThan>
ORDER BY fl.feature_id, dbx.accession , db.name;
</select>
<!-- WRITE BACK -->
<delete id="deleteFeatureDbXRef" parameterClass="FeatureDbXRef">
DELETE FROM feature_dbxref
WHERE dbxref_id=
(SELECT dbxref_id FROM dbxref WHERE accession=#dbXRef.accession#
AND db_id=(SELECT db_id FROM db WHERE name=#dbXRef.db.name#))
AND feature_id=
(SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#)
</delete>
<insert id="insertFeatureDbXRef" parameterClass="FeatureDbXRef">
INSERT INTO feature_dbxref
(feature_id, dbxref_id, is_current)
VALUES
($feature.featureId$, $dbXRef.dbXRefId$, $current$)
</insert>
</sqlMap>