File: FeatureProp.xml

package info (click to toggle)
artemis 17.0.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 112,044 kB
  • sloc: java: 451,938; sh: 3,370; xml: 2,292; makefile: 182; perl: 83; sql: 47
file content (106 lines) | stat: -rw-r--r-- 3,841 bytes parent folder | download | duplicates (7)
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
<?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="map-featureprop-with-cvterm-lazy" 
                class="FeatureProp">
        <result property="value" column="value" />
        <result property="rank" column="rank" />
        <result property="cvTerm" column="type_id" select="getCvtermByCvTermId" />
     </resultMap>
	 
     <resultMap id="map-featureprop-with-cvterm" 
                class="FeatureProp">
        <result property="value" column="value" />
        <result property="rank" column="rank" />
		<result property="cvTerm" resultMap="CvTerm.lazy-cvterm" />
     </resultMap>
     
    <resultMap id="map-featureprop" 
               class="FeatureProp" groupBy="featurePropId">
		<result property="featurePropId" column="featureprop_id" />
        <result property="value" column="value" />
        <result property="rank"  column="prop_rank" />
        <result property="cvTerm.cvTermId" column="prop_type_id" />
    </resultMap>
	
	<resultMap id="map-feature-with-featureprops" 
                class="org.gmod.schema.sequence.Feature" groupBy="featureId">
        <result property="featureId" column="feature_id" />
        <result property="featureProps" resultMap="FeatureProp.map-featureprop-with-cvterm" />
    </resultMap>
     
   <!-- select featureprops e.g. for lazy loading -->
     <select id="getFeaturePropByFeatureIdLazy" resultMap="map-featureprop-with-cvterm-lazy">
       SELECT type_id, value, rank 
       FROM featureprop
       WHERE feature_id=#feature_id#
     </select>
     
	<select id="getFeaturePropByFeatureId" resultMap="map-featureprop-with-cvterm">
       SELECT value, rank, cvterm.* 
       FROM featureprop
	   LEFY JOIN cvterm ON type_id=cvterm_id
       WHERE feature_id=#feature_id#
     </select>
	
	 <select id="getFeaturePropByFeatureIds" resultMap="map-feature-with-featureprops">
       SELECT f.feature_id, value, rank, cvterm.* 
       FROM feature f
	   LEFT JOIN featureprop fp ON f.feature_id=fp.feature_id
       LEFT JOIN cvterm ON fp.type_id=cvterm_id
	   WHERE f.feature_id IN <iterate open="(" close=")" conjunction=","> $[]$ </iterate>
     </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
      ( 
        <isGreaterThan property="feature.featureId" compareValue="0">
          $feature.featureId$,
        </isGreaterThan>
        <isLessEqual property="feature.featureId" compareValue="0">
          (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#),
        </isLessEqual>
        $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>