<?xml version="1.0" encoding="UTF-8" ?>
<sqlMap namespace="SYS_MENU" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <alias>
    <typeAlias alias="SYS_MENU" type="SSWMS.Common.SYS_MENU, SSWMS.Common" />
  </alias>
  <resultMaps>
    <resultMap id="SelectResult" class="SYS_MENU">
      <result property="MENU_ID" column="MENU_ID" />
      <result property="MENU_PARENT_ID" column="MENU_PARENT_ID" />
      <result property="MENU_IS_PARENT" column="MENU_IS_PARENT" />
      <result property="MENU_NAME" column="MENU_NAME" />
      <result property="MENU_PARAMETER" column="MENU_PARAMETER" />
      <result property="MENU_FLAG" column="MENU_FLAG" />
      <result property="MENU_IMAGE" column="MENU_IMAGE" />
      <result property="MENU_ORDER" column="MENU_ORDER" />
    </resultMap>
  </resultMaps>
  <statements>
    <select id="SYS_MENU_SELECT" parameterClass="int" resultMap="SelectResult">
      select
      MENU_ID,
      MENU_PARENT_ID,
      MENU_IS_PARENT,
      MENU_NAME,
      MENU_PARAMETER,
      MENU_FLAG,
      MENU_IMAGE,
      MENU_ORDER
      from SYS_MENU
    </select>
    <select id="SYS_MENU_SELECT_BY_ID" parameterClass="int"
            extends="SYS_MENU_SELECT" resultMap="SelectResult">
      where MENU_ID=#MENU_ID#
    </select>
    <select id="SYS_MENU_SELECT_BY_MENU_FLAG" parameterClass="string" 
            extends="SYS_MENU_SELECT" resultMap="SelectResult">
      where MENU_FLAG=#MENU_FLAG# order by MENU_ORDER
    </select>
    <select id="SYS_MENU_SELECT_BY_USER" parameterClass="Hashtable"
            extends="SYS_MENU_SELECT" resultMap="SelectResult">
      where MENU_FLAG=#MENU_FLAG# and (MENU_IS_PARENT=#MENU_IS_PARENT# or MENU_PARENT_ID=#MENU_PARENT_ID# or MENU_ID in
      (SELECT RELATION_ID2 FROM V_SYS_RELATION_USER where RELATION_TYPE=#RELATION_TYPE# and RELATION_ID1=#USER_ID#)) order by MENU_ORDER
    </select>
    <insert id="SYS_MENU_INSERT_SQLSERVER" parameterClass="SYS_MENU">
      insert into SYS_MENU (
      MENU_PARENT_ID,
      MENU_IS_PARENT,
      MENU_NAME,
      MENU_PARAMETER,
      MENU_IMAGE,
      MENU_FLAG,
      MENU_ORDER
      )values(
      #MENU_PARENT_ID#,
      #MENU_IS_PARENT#,
      #MENU_NAME#,
      #MENU_PARAMETER#,
      #MENU_IMAGE#,
      #MENU_FLAG#,
      #MENU_ORDER#
      )
      <selectKey resultClass="int" type="post" property="MENU_ID">
        select @@IDENTITY as value
      </selectKey>
    </insert>
    <insert id="SYS_MENU_INSERT_ORACLE" parameterClass="SYS_MENU">
      insert into SYS_MENU (
      MENU_ID,
      MENU_PARENT_ID,
      MENU_IS_PARENT,
      MENU_NAME,
      MENU_PARAMETER,
      MENU_IMAGE,
      MENU_FLAG,
      MENU_ORDER
      )values(
      #MENU_ID#,
      #MENU_PARENT_ID#,
      #MENU_IS_PARENT#,
      #MENU_NAME#,
      #MENU_PARAMETER#,
      #MENU_IMAGE#,
      #MENU_FLAG#,
      #MENU_ORDER#
      )
      <selectKey resultClass="int" type="pre" property="MENU_ID">
        select SYS_MENU_SEQ.nextval as value from DUAL
      </selectKey>
    </insert>
    <update id="SYS_MENU_UPDATE" parameterClass="SYS_MENU">
      update SYS_MENU set
      MENU_PARENT_ID=#MENU_PARENT_ID#,
      MENU_IS_PARENT=#MENU_IS_PARENT#,
      MENU_NAME=#MENU_NAME#,
      MENU_PARAMETER=#MENU_PARAMETER#,
      MENU_FLAG=#MENU_FLAG#,
      MENU_IMAGE=#MENU_IMAGE#,
      MENU_ORDER=#MENU_ORDER#
      where MENU_ID=#MENU_ID#
    </update>
    <delete id="SYS_MENU_DELETE" parameterClass="int">
      delete from SYS_MENU
      where MENU_ID=#MENU_ID#
    </delete>
  </statements>
</sqlMap>