1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="FeatureCvTerm">
<cacheModel id="featurecvterm-rank-cache" type ="LRU" readOnly="true">
<flushInterval hours="24"/>
<property name="cache-size" value="15" />
</cacheModel>
<typeAlias alias="FeatureCvTerm"
type="org.gmod.schema.sequence.FeatureCvTerm"/>
<resultMap id="select-featurecvterm-no-rank" class="FeatureCvTerm"
groupBy="featureCvTermId">
<result property="featureCvTermId" column="feature_cvterm_id" />
<result property="feature.featureId" column="feature_id" />
<result property="cvTerm.cvTermId" column="cvterm_id" />
<result property="cvTerm.name" column="cvterm_name" />
<result property="cvTerm.cv.name" column="cv_name" />
<result property="not" column="is_not" />
<result property="featureCvTermProps" resultMap="FeatureCvTermProp.feature_cvtermprop" />
<result property="pub.pubId" column="pub_id" />
<result property="pub.uniqueName" column="uniquename" />
<result property="cvTerm.dbXRef.accession" column="accession" />
<result property="cvTerm.dbXRef.db.name" column="name" />
<result property="featureCvTermDbXRefs" column="feature_cvterm_id"
select="getFeatureCvTermDbXRefByFeatureCvTerm" />
<!-- <result property="pub" column="pub_id" select="selectPub" /> -->
</resultMap>
<resultMap id="select-featurecvterm" class="FeatureCvTerm"
extends="select-featurecvterm-no-rank">
<result property="rank" column="rank" />
</resultMap>
<!-- select feature_cvterm -->
<sql id="sql_select_feature_cvterm">
SELECT
fc.*,
fcp.type_id, fcp.value, fcp.rank AS fcp_rank,
cvterm.name AS cvterm_name,
cv.name AS cv_name,
pub.pub_id,
pub.uniquename,
db.name,
dbxref.accession
FROM feature_cvterm fc
LEFT JOIN feature_cvtermprop fcp ON fc.feature_cvterm_id=fcp.feature_cvterm_id
LEFT JOIN cvterm ON cvterm.cvterm_id=fc.cvterm_id
LEFT JOIN cv ON cvterm.cv_id=cv.cv_id
LEFT JOIN pub ON fc.pub_id=pub.pub_id
LEFT JOIN dbxref ON cvterm.dbxref_id=dbxref.dbxref_id
LEFT JOIN db ON dbxref.db_id=db.db_id
</sql>
<select id="getFeatureCvTermsBySrcFeature" parameterClass="org.gmod.schema.sequence.Feature"
resultMap="select-featurecvterm">
<include refid="sql_select_feature_cvterm"/>
WHERE feature_id IN
(SELECT feature_id FROM featureloc fl 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 fc.feature_cvterm_id, fc.rank, type_id, fcp.rank;
</select>
<select id="getFeatureCvTermsNoRankBySrcFeature" parameterClass="org.gmod.schema.sequence.Feature"
resultMap="select-featurecvterm-no-rank">
<include refid="sql_select_feature_cvterm"/>
WHERE feature_id IN
(SELECT feature_id FROM featureloc fl 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 fc.feature_cvterm_id, type_id, fcp.rank;
</select>
<select id="getFeatureCvTermsByFeature" parameterClass="Feature"
resultMap="select-featurecvterm">
<include refid="sql_select_feature_cvterm"/>
<dynamic>
<isNotNull property="uniqueName" prepend="WHERE">
feature_id IN (SELECT feature_id FROM feature WHERE uniquename=#uniqueName#)
</isNotNull>
</dynamic>
ORDER BY fc.feature_cvterm_id, fc.rank, type_id, fcp.rank;
</select>
<!-- same as getFeatureCvTermsByFeature but without feature_cvterm.rank -->
<select id="getFeatureCvTermsNoRankByFeature" parameterClass="Feature"
resultMap="select-featurecvterm-no-rank">
<include refid="sql_select_feature_cvterm"/>
<dynamic>
<isNotNull property="uniqueName" prepend="WHERE">
feature_id=(SELECT feature_id FROM feature WHERE uniquename=#uniqueName#)
</isNotNull>
</dynamic>
ORDER BY fc.feature_cvterm_id, type_id, fcp.rank;
</select>
<select id="getFeatureCvTermColumnsForASchema" parameterClass="java.lang.String"
resultClass="java.lang.String" cacheModel="featurecvterm-rank-cache">
SELECT pg_attribute.attname
FROM pg_attribute, pg_class, pg_namespace
WHERE pg_namespace.oid=pg_class.relnamespace AND
attrelid=pg_class.oid AND
relname='feature_cvterm' AND
attnum > 0
<!--AND nspname=#value#-->
</select>
<delete id="deleteFeatureCvTerm" parameterClass="FeatureCvTerm">
DELETE FROM feature_cvterm WHERE
feature_cvterm_id=$featureCvTermId$
</delete>
<!-- UPDATE -->
<update id="updateFeatureCvTerm"
parameterClass="FeatureCvTerm">
UPDATE feature_cvterm
SET rank=$rank$
WHERE feature_cvterm_id=$featureCvTermId$
</update>
<!-- INSERT -->
<insert id="insertFeatureCvTerm"
parameterClass="FeatureCvTerm">
INSERT INTO feature_cvterm
( feature_cvterm_id, feature_id, cvterm_id, pub_id, rank, is_not )
VALUES
( nextval('feature_cvterm_feature_cvterm_id_seq'),
(SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#),
<isGreaterThan property="cvTerm.cvTermId" compareValue="0">
$cvTerm.cvTermId$,
</isGreaterThan>
<isEqual property="cvTerm.cvTermId" compareValue="0">
(SELECT cvterm_id FROM cvterm WHERE name=#cvTerm.name# AND
cv_id = (SELECT cv_id FROM cv WHERE name=#cvTerm.cv.name#)),
</isEqual>
<dynamic>
<isNotNull property="pub">
<isEqual property="pub.pubId" compareValue="0">
(SELECT pub_id FROM pub WHERE uniquename=#pub.uniqueName#),
</isEqual>
<isGreaterThan property="pub.pubId" compareValue="0">
$pub.pubId$,
</isGreaterThan>
</isNotNull>
<isNull property="pub">
(SELECT pub_id FROM pub WHERE uniquename='null' OR uniquename='NULL'),
</isNull>
</dynamic>
$rank$,
$not$ )
</insert>
</sqlMap>
|