diff --git a/artemis_sqlmap/Feature.xml b/artemis_sqlmap/Feature.xml index 27b9a971bf960cee48cd352772b23e7f04aa3936..0feae18ab0d5809fb94b4eaefc96acde5fa0b85b 100644 --- a/artemis_sqlmap/Feature.xml +++ b/artemis_sqlmap/Feature.xml @@ -9,25 +9,7 @@ <typeAlias alias="Feature" type="org.gmod.schema.sequence.Feature"/> - - <typeAlias alias="FeatureLoc" - type="org.gmod.schema.sequence.FeatureLoc"/> - - <typeAlias alias="FeatureProp" - type="org.gmod.schema.sequence.FeatureProp"/> - - <typeAlias alias="FeatureRelationship" - type="org.gmod.schema.sequence.FeatureRelationship"/> - - <typeAlias alias="FeatureCvTerm" - type="org.gmod.schema.sequence.FeatureCvTerm"/> - - <typeAlias alias="FeatureCvTermProp" - type="org.gmod.schema.sequence.FeatureCvTermProp"/> - - <typeAlias alias="FeatureCvTermDbXRef" - type="org.gmod.schema.sequence.FeatureCvTermDbXRef"/> - + <parameterMap id="schema-cvlist" class="Feature"> <parameter property="schema" javaType="java.lang.String"/> @@ -39,7 +21,7 @@ <result property="timeLastModified" column="timelastmodified"/> <result property="featureId" column="id"/> <result property="featureRelationshipsForSubjectId" - resultMap="Feature.feature_relationship" /> + resultMap="FeatureRelationship.feature_relationship" /> <!-- <result property="featureRelationship.featureByObjectId.featureId" column="object_id"/> <result property="featureRelationship.cvTerm.cvTermId" column="relation_type_id"/> @@ -51,7 +33,7 @@ <result property="featureLoc.phase" column="phase"/> <result property="uniqueName" column="uniquename"/> <result property="cvTerm.cvTermId" column="type_id"/> - <result property="featureProps" resultMap="Feature.featureprop" /> + <result property="featureProps" resultMap="FeatureProp.featureprop" /> <!-- <result property="featureprop.cvTerm.cvTermId" column="prop_type_id" nullValue="0"/> <result property="featureprop.value" column="value"/> @@ -95,159 +77,8 @@ <result property="featureId" column="feature_id"/> <result property="cvTerm.cvTermId" column="type_id"/> </resultMap> - - <resultMap id="select-featureprop" - class="FeatureProp"> - <result property="value" column="value" /> - <result property="rank" column="rank" /> - <result property="cvTerm" column="type_id" select="selectCvterm" /> - </resultMap> - - <resultMap id="featureprop" - class="FeatureProp"> - <result property="value" column="value" /> - <result property="rank" column="prop_rank" /> - <result property="cvTerm.cvTermId" column="prop_type_id" /> - </resultMap> - - <resultMap id="feature_relationship" - class="FeatureRelationship"> - <result property="featureByObjectId.featureId" column="object_id"/> - <result property="cvTerm.cvTermId" column="relation_type_id"/> - <result property="rank" column="rank"/> - <result property="value" column="relation_value" /> - </resultMap> - - <resultMap id="select-relationship" - class="FeatureRelationship"> - <result property="featureBySubjectId.featureId" column="subject_id" /> - <result property="featureByObjectId.featureId" column="object_id" /> - <result property="value" column="value" /> - <result property="rank" column="rank" /> - <result property="cvTerm" column="type_id" select="selectCvterm" /> - </resultMap> - - <resultMap id="select-location" - class="FeatureLoc"> - <result property="featureBySrcFeatureId.featureId" column="srcfeature_id" nullValue="-999" /> - <result property="fmin" column="fmin" nullValue="-999" /> - <result property="fmax" column="fmax" nullValue="-999" /> - <result property="strand" column="strand" nullValue="0" /> - <result property="phase" column="phase" nullValue="0" /> - <result property="residueInfo" column="residue_info"/> - <result property="locGroup" column="locgroup"/> - <result property="rank" column="rank"/> - </resultMap> - - <resultMap id="feature_cvtermprop" class="FeatureCvTermProp"> - <result property="cvTerm.cvTermId" column="type_id" /> - <result property="value" column="value" /> - <result property="rank" column="rank" /> - </resultMap> - - <resultMap id="select-featurecvterm" 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="rank" column="fc_rank" /> - <result property="featureCvTermProps" resultMap="Feature.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="pub" column="pub_id" select="selectPub" /> --> - </resultMap> - - <resultMap id="select-featurecvtermdbxref" class="FeatureCvTermDbXRef" - groupBy="featureCvTermId"> - <result property="featureCvTerm.featureCvTermId" column="feature_cvterm_id" /> - <result property="dbXRef.accession" column="accession"/> - <result property="dbXRef.version" column="version"/> - <result property="dbXRef.description" column="description"/> - <result property="dbXRef.db.name" column="name"/> - </resultMap> <!-- SQL --> - - <!-- select featureprops e.g. for lazy loading --> - <select id="selectFeatureProp" resultMap="select-featureprop"> - SELECT type_id, value, rank - FROM featureprop - WHERE feature_id=#feature_id# - </select> - - <!-- select feature_relationship --> - <select id="getFeatureRelationship" resultMap="select-relationship"> - SELECT 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> - - <!-- select featureloc --> - <select id="getFeatureLoc" resultMap="select-location"> - SELECT srcfeature_id, fmin, fmax, strand, phase, residue_info, locgroup, rank - FROM featureloc - WHERE featureloc.feature_id=#id# - </select> - - - <!-- select feature_cvterm --> - <select id="getFeatureCvTermsByFeature" parameterClass="Feature" - resultMap="select-featurecvterm"> - SELECT - fc.feature_id, - fc.feature_cvterm_id, - fc.cvterm_id, - fc.rank AS fc_rank, - fc.is_not, - fcp.type_id, fcp.value, 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 - <dynamic> - <isNotNull property="uniqueName" prepend="WHERE"> - feature_id=(SELECT feature_id FROM feature WHERE uniquename=#uniqueName#) - </isNotNull> - </dynamic> - ORDER BY fc.feature_cvterm_id, fc.rank, type_id, fcp.rank; - </select> - - <select id="getFeatureCvTermDbXRef" parameterClass="Feature" - resultMap="select-featurecvtermdbxref"> - SELECT feature_cvterm_id, dbx.*, db.name - FROM feature_cvterm_dbxref fcd - LEFT JOIN dbxref dbx ON dbx.dbxref_id=fcd.dbxref_id - LEFT JOIN db ON db.db_id=dbx.db_id - <dynamic> - <isNotNull property="uniqueName"> - LEFT JOIN feature_cvterm fc ON fcd.feature_cvterm_id=fc.feature_cvterm_id - WHERE - feature_id=(SELECT feature_id FROM feature WHERE uniquename=#uniqueName#) - </isNotNull> - </dynamic> - </select> <!-- get feature --> @@ -359,22 +190,6 @@ <!-- WRITE BACK METHODS --> <!-- UPDATE --> - <update id="updateFeatureLoc" - parameterClass="FeatureLoc"> - UPDATE featureloc - SET fmin=$fmin$, fmax=$fmax$, rank=$rank$, strand=$strand$ - <isNotNull property="phase"> - , phase=$phase$ - </isNotNull> - <isNull property="phase"> - , phase=NULL - </isNull> - WHERE - <isNotNull property="featureByFeatureId.uniqueName"> - feature_id=(SELECT feature_id FROM feature WHERE uniquename=#featureByFeatureId.uniqueName#) - </isNotNull> - </update> - <update id="updateFeature" parameterClass="Feature"> UPDATE feature @@ -387,36 +202,9 @@ </isNotNull> WHERE feature_id=$featureId$ </update> - - <update id="updateFeatureProp" - parameterClass="FeatureProp"> - UPDATE featureprop - SET value=#value# - WHERE rank=$rank$ AND type_id=$cvTerm.cvTermId$ AND - feature_id=(SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#) - </update> - - <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 --> - <insert id="insertFeatureProp" - parameterClass="FeatureProp"> - INSERT INTO featureprop - ( feature_id, type_id, value, rank ) - VALUES - ( (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#), - $cvTerm.cvTermId$, #value#, $rank$ ) - </insert> - <insert id="insertFeature" parameterClass="Feature"> INSERT INTO feature @@ -428,59 +216,9 @@ #uniqueName#, $cvTerm.cvTermId$ ) </insert> - - <insert id="insertFeatureLoc" - parameterClass="Feature"> - INSERT INTO featureloc - ( featureloc_id, feature_id, srcfeature_id, fmin, fmax, strand - <isNotNull property="featureLoc.phase"> - , phase - </isNotNull> - ) - VALUES - ( nextval('featureloc_featureloc_id_seq'), - $featureId$, - $featureLoc.featureBySrcFeatureId.featureId$, - $featureLoc.fmin$, - $featureLoc.fmax$, - $featureLoc.strand$ - <isNotNull property="featureLoc.phase"> - , $featureLoc.phase$ - </isNotNull> - ) - </insert> - - <insert id="insertFeatureRelationship" - parameterClass="FeatureRelationship"> - INSERT INTO feature_relationship - ( subject_id, object_id, type_id ) - VALUES - ( (SELECT feature_id FROM feature WHERE uniquename=#featureBySubjectId.uniqueName#), - (SELECT feature_id FROM feature WHERE uniquename=#featureByObjectId.uniqueName#), - $cvTerm.cvTermId$ ) - </insert> <!-- DELETE --> - - <delete id="deleteFeatureProp" - parameterClass="FeatureProp"> - DELETE FROM featureprop - WHERE - <isNotNull property="feature.uniqueName"> - feature_id= - (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#) - AND - </isNotNull> - <isGreaterThan property="rank" compareValue="-1"> - rank=$rank$ AND - </isGreaterThan> - <isNotNull property="value"> - value=#value# AND - </isNotNull> - type_id=$cvTerm.cvTermId$ - </delete> - <delete id="deleteFeature" parameterClass="Feature"> DELETE FROM feature diff --git a/artemis_sqlmap/FeatureCvTerm.xml b/artemis_sqlmap/FeatureCvTerm.xml new file mode 100644 index 0000000000000000000000000000000000000000..29d98339a9f85c3cccf7704195dbe574e7d72ae4 --- /dev/null +++ b/artemis_sqlmap/FeatureCvTerm.xml @@ -0,0 +1,59 @@ +<!DOCTYPE sqlMap + PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" + "http://ibatis.apache.org/dtd/sql-map-2.dtd"> + + +<sqlMap namespace="FeatureCvTerm"> + + <typeAlias alias="FeatureCvTerm" + type="org.gmod.schema.sequence.FeatureCvTerm"/> + + <resultMap id="select-featurecvterm" 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="rank" column="fc_rank" /> + <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="pub" column="pub_id" select="selectPub" /> --> + </resultMap> + + <!-- select feature_cvterm --> + <select id="getFeatureCvTermsByFeature" parameterClass="Feature" + resultMap="select-featurecvterm"> + SELECT + fc.feature_id, + fc.feature_cvterm_id, + fc.cvterm_id, + fc.rank AS fc_rank, + fc.is_not, + fcp.type_id, fcp.value, 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 + <dynamic> + <isNotNull property="uniqueName" prepend="WHERE"> + feature_id=(SELECT feature_id FROM feature WHERE uniquename=#uniqueName#) + </isNotNull> + </dynamic> + ORDER BY fc.feature_cvterm_id, fc.rank, type_id, fcp.rank; + </select> + +</sqlMap> \ No newline at end of file diff --git a/artemis_sqlmap/FeatureCvTermDbXRef.xml b/artemis_sqlmap/FeatureCvTermDbXRef.xml new file mode 100644 index 0000000000000000000000000000000000000000..e16cc5a0c473f26512a1b61cb9a42a8fafaf5274 --- /dev/null +++ b/artemis_sqlmap/FeatureCvTermDbXRef.xml @@ -0,0 +1,35 @@ +<!DOCTYPE sqlMap + PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" + "http://ibatis.apache.org/dtd/sql-map-2.dtd"> + + +<sqlMap namespace="FeatureCvTermDbXRef"> + + <typeAlias alias="FeatureCvTermDbXRef" + type="org.gmod.schema.sequence.FeatureCvTermDbXRef"/> + + <resultMap id="select-featurecvtermdbxref" class="FeatureCvTermDbXRef" + groupBy="featureCvTermId"> + <result property="featureCvTerm.featureCvTermId" column="feature_cvterm_id" /> + <result property="dbXRef.accession" column="accession"/> + <result property="dbXRef.version" column="version"/> + <result property="dbXRef.description" column="description"/> + <result property="dbXRef.db.name" column="name"/> + </resultMap> + + <select id="getFeatureCvTermDbXRef" parameterClass="Feature" + resultMap="select-featurecvtermdbxref"> + SELECT feature_cvterm_id, dbx.*, db.name + FROM feature_cvterm_dbxref fcd + LEFT JOIN dbxref dbx ON dbx.dbxref_id=fcd.dbxref_id + LEFT JOIN db ON db.db_id=dbx.db_id + <dynamic> + <isNotNull property="uniqueName"> + LEFT JOIN feature_cvterm fc ON fcd.feature_cvterm_id=fc.feature_cvterm_id + WHERE + feature_id=(SELECT feature_id FROM feature WHERE uniquename=#uniqueName#) + </isNotNull> + </dynamic> + </select> + +</sqlMap> \ No newline at end of file diff --git a/artemis_sqlmap/FeatureCvTermProp.xml b/artemis_sqlmap/FeatureCvTermProp.xml new file mode 100644 index 0000000000000000000000000000000000000000..a046fa8fec37cbc76b2f9fce7a0c4d6698be6c8e --- /dev/null +++ b/artemis_sqlmap/FeatureCvTermProp.xml @@ -0,0 +1,16 @@ +<!DOCTYPE sqlMap + PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" + "http://ibatis.apache.org/dtd/sql-map-2.dtd"> + + +<sqlMap namespace="FeatureCvTermProp"> + + <typeAlias alias="FeatureCvTermProp" + type="org.gmod.schema.sequence.FeatureCvTermProp"/> + + <resultMap id="feature_cvtermprop" class="FeatureCvTermProp"> + <result property="cvTerm.cvTermId" column="type_id" /> + <result property="value" column="value" /> + <result property="rank" column="rank" /> + </resultMap> +</sqlMap> \ No newline at end of file diff --git a/artemis_sqlmap/FeatureLoc.xml b/artemis_sqlmap/FeatureLoc.xml new file mode 100644 index 0000000000000000000000000000000000000000..56647ca73cafd5c72afd432ea8926acb8586d315 --- /dev/null +++ b/artemis_sqlmap/FeatureLoc.xml @@ -0,0 +1,74 @@ +<?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="FeatureLoc"> + + + + <typeAlias alias="FeatureLoc" + type="org.gmod.schema.sequence.FeatureLoc"/> + + <resultMap id="select-location" + class="FeatureLoc"> + <result property="featureBySrcFeatureId.featureId" column="srcfeature_id" nullValue="-999" /> + <result property="fmin" column="fmin" nullValue="-999" /> + <result property="fmax" column="fmax" nullValue="-999" /> + <result property="strand" column="strand" nullValue="0" /> + <result property="phase" column="phase" nullValue="0" /> + <result property="residueInfo" column="residue_info"/> + <result property="locGroup" column="locgroup"/> + <result property="rank" column="rank"/> + </resultMap> + + <!-- select featureloc --> + <select id="getFeatureLoc" resultMap="select-location"> + SELECT srcfeature_id, fmin, fmax, strand, phase, residue_info, locgroup, rank + FROM featureloc + WHERE featureloc.feature_id=#id# + </select> + + <!-- WRITE BACK METHODS --> + + <!-- UPDATE --> + <update id="updateFeatureLoc" + parameterClass="FeatureLoc"> + UPDATE featureloc + SET fmin=$fmin$, fmax=$fmax$, rank=$rank$, strand=$strand$ + <isNotNull property="phase"> + , phase=$phase$ + </isNotNull> + <isNull property="phase"> + , phase=NULL + </isNull> + WHERE + <isNotNull property="featureByFeatureId.uniqueName"> + feature_id=(SELECT feature_id FROM feature WHERE uniquename=#featureByFeatureId.uniqueName#) + </isNotNull> + </update> + + <insert id="insertFeatureLoc" + parameterClass="Feature"> + INSERT INTO featureloc + ( featureloc_id, feature_id, srcfeature_id, fmin, fmax, strand + <isNotNull property="featureLoc.phase"> + , phase + </isNotNull> + ) + VALUES + ( nextval('featureloc_featureloc_id_seq'), + $featureId$, + $featureLoc.featureBySrcFeatureId.featureId$, + $featureLoc.fmin$, + $featureLoc.fmax$, + $featureLoc.strand$ + <isNotNull property="featureLoc.phase"> + , $featureLoc.phase$ + </isNotNull> + ) + </insert> + +</sqlMap> \ No newline at end of file diff --git a/artemis_sqlmap/FeatureProp.xml b/artemis_sqlmap/FeatureProp.xml new file mode 100644 index 0000000000000000000000000000000000000000..d202049b1b802b9e61aae0d6b617b22ef3520cd1 --- /dev/null +++ b/artemis_sqlmap/FeatureProp.xml @@ -0,0 +1,71 @@ +<?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="FeatureProp"> + + <typeAlias alias="FeatureProp" + type="org.gmod.schema.sequence.FeatureProp"/> + + <resultMap id="select-featureprop" + class="FeatureProp"> + <result property="value" column="value" /> + <result property="rank" column="rank" /> + <result property="cvTerm" column="type_id" select="selectCvterm" /> + </resultMap> + + <resultMap id="featureprop" + class="FeatureProp"> + <result property="value" column="value" /> + <result property="rank" column="prop_rank" /> + <result property="cvTerm.cvTermId" column="prop_type_id" /> + </resultMap> + + <!-- select featureprops e.g. for lazy loading --> + <select id="selectFeatureProp" resultMap="select-featureprop"> + SELECT type_id, value, rank + FROM featureprop + WHERE feature_id=#feature_id# + </select> + + <update id="updateFeatureProp" + parameterClass="FeatureProp"> + UPDATE featureprop + SET value=#value# + WHERE rank=$rank$ AND type_id=$cvTerm.cvTermId$ AND + feature_id=(SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#) + </update> + + <!-- INSERT --> + <insert id="insertFeatureProp" + parameterClass="FeatureProp"> + INSERT INTO featureprop + ( feature_id, type_id, value, rank ) + VALUES + ( (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#), + $cvTerm.cvTermId$, #value#, $rank$ ) + </insert> + + <!-- DELETE --> + <delete id="deleteFeatureProp" + parameterClass="FeatureProp"> + DELETE FROM featureprop + WHERE + <isNotNull property="feature.uniqueName"> + feature_id= + (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#) + AND + </isNotNull> + <isGreaterThan property="rank" compareValue="-1"> + rank=$rank$ AND + </isGreaterThan> + <isNotNull property="value"> + value=#value# AND + </isNotNull> + type_id=$cvTerm.cvTermId$ + </delete> + +</sqlMap> \ No newline at end of file diff --git a/artemis_sqlmap/FeatureRelationship.xml b/artemis_sqlmap/FeatureRelationship.xml new file mode 100644 index 0000000000000000000000000000000000000000..ba40dbf4dd6bccfafb11074e9b8ba5ee7d20996a --- /dev/null +++ b/artemis_sqlmap/FeatureRelationship.xml @@ -0,0 +1,68 @@ +<?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="feature_relationship" + class="FeatureRelationship"> + <result property="featureByObjectId.featureId" column="object_id"/> + <result property="cvTerm.cvTermId" column="relation_type_id"/> + <result property="rank" column="rank"/> + <result property="value" column="relation_value" /> + </resultMap> + + <resultMap id="select-relationship" + class="FeatureRelationship"> + <result property="featureBySubjectId.featureId" column="subject_id" /> + <result property="featureByObjectId.featureId" column="object_id" /> + <result property="value" column="value" /> + <result property="rank" column="rank" /> + <result property="cvTerm" column="type_id" select="selectCvterm" /> + </resultMap> + + <!-- select feature_relationship --> + <select id="getFeatureRelationship" resultMap="select-relationship"> + SELECT 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 ) + VALUES + ( (SELECT feature_id FROM feature WHERE uniquename=#featureBySubjectId.uniqueName#), + (SELECT feature_id FROM feature WHERE uniquename=#featureByObjectId.uniqueName#), + $cvTerm.cvTermId$ ) + </insert> + +</sqlMap> \ No newline at end of file diff --git a/artemis_sqlmap/chado_iBatis_config.xml b/artemis_sqlmap/chado_iBatis_config.xml index 40c326c0d3614dce7603b66afa1c6b002273c017..e6d36e1eda1f388a4ebff590e313cf6e8b330c80 100644 --- a/artemis_sqlmap/chado_iBatis_config.xml +++ b/artemis_sqlmap/chado_iBatis_config.xml @@ -52,6 +52,12 @@ <sqlMap resource="artemis_sqlmap/CvTerm.xml" /> <sqlMap resource="artemis_sqlmap/Pub.xml" /> <sqlMap resource="artemis_sqlmap/Feature.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureCvTerm.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureCvTermDbXRef.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureCvTermProp.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureLoc.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureProp.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureRelationship.xml" /> <sqlMap resource="artemis_sqlmap/DbXRef.xml" /> <sqlMap resource="artemis_sqlmap/Synonym.xml" />