diff --git a/artemis_sqlmap/DbXRef.xml b/artemis_sqlmap/DbXRef.xml index 5a92a24d28a798e91604486b42012d4da79bb05c..319c0afc5f4621472e4f04f401f9bd2c40548669 100644 --- a/artemis_sqlmap/DbXRef.xml +++ b/artemis_sqlmap/DbXRef.xml @@ -6,25 +6,12 @@ <sqlMap namespace="DbXRef"> - - <typeAlias alias="FeatureDbXRef" - type="org.gmod.schema.sequence.FeatureDbXRef"/> - + <typeAlias alias="DbXRef" type="org.gmod.schema.general.DbXRef"/> <typeAlias alias="Db" type="org.gmod.schema.general.Db"/> - - <resultMap id="select-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"/> - </resultMap> <resultMap id="select-dbxref" class="DbXRef"> @@ -33,25 +20,7 @@ <result property="version" column="version"/> <result property="description" column="description"/> </resultMap> - - - <select id="getFeatureDbXRef" - parameterClass="org.gmod.schema.sequence.Feature" - resultMap="select-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 f.uniquename=#uniqueName# - </isNotNull> - <isGreaterThan property="featureId" compareValue="0"> - WHERE dbx_f.feature_id=$featureId$ - </isGreaterThan> - ORDER BY f.type_id, uniquename - </select> + <select id="getDbId" parameterClass="Db" resultClass="java.lang.Integer"> @@ -73,25 +42,9 @@ </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> - <insert id="insertDbXRef" parameterClass="DbXRef"> INSERT INTO dbxref ( db_id, accession ) VALUES ($dbXRefId$, #accession#) - </insert> + </insert> </sqlMap> diff --git a/artemis_sqlmap/FeatureDbXRef.xml b/artemis_sqlmap/FeatureDbXRef.xml new file mode 100644 index 0000000000000000000000000000000000000000..1d5e63ea2bad332292354930e1ebe857cbb0ccf1 --- /dev/null +++ b/artemis_sqlmap/FeatureDbXRef.xml @@ -0,0 +1,59 @@ +<?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="select-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"/> + </resultMap> + + + <select id="getFeatureDbXRef" + parameterClass="org.gmod.schema.sequence.Feature" + resultMap="select-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 f.uniquename=#uniqueName# + </isNotNull> + <isGreaterThan property="featureId" compareValue="0"> + WHERE dbx_f.feature_id=$featureId$ + </isGreaterThan> + ORDER BY f.type_id, uniquename + </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> \ No newline at end of file diff --git a/artemis_sqlmap/chado_iBatis_config.xml b/artemis_sqlmap/chado_iBatis_config.xml index e6d36e1eda1f388a4ebff590e313cf6e8b330c80..08f2240d9508ce823d21c5a5a0b8ada1af18bd77 100644 --- a/artemis_sqlmap/chado_iBatis_config.xml +++ b/artemis_sqlmap/chado_iBatis_config.xml @@ -55,6 +55,7 @@ <sqlMap resource="artemis_sqlmap/FeatureCvTerm.xml" /> <sqlMap resource="artemis_sqlmap/FeatureCvTermDbXRef.xml" /> <sqlMap resource="artemis_sqlmap/FeatureCvTermProp.xml" /> + <sqlMap resource="artemis_sqlmap/FeatureDbXRef.xml" /> <sqlMap resource="artemis_sqlmap/FeatureLoc.xml" /> <sqlMap resource="artemis_sqlmap/FeatureProp.xml" /> <sqlMap resource="artemis_sqlmap/FeatureRelationship.xml" />