com.poscoict.glueframework.biz.activity.hibernate
Class GlueHibernateDelete

java.lang.Object
  extended by com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
      extended by com.poscoict.glueframework.biz.activity.hibernate.GlueHibernateDelete

public class GlueHibernateDelete
extends GlueActivity<GlueContext>

GlueHibernateDelete Activity. GlueHibernateDelete Class는 Hibernate용 Delete Query(HQL)를 실행하고 그 결과값(Delete 건수)을 저장한다.

 Query File
  - Sample Query
 <query id="emp.delete" desc="" isNamed="true">
     <![CDATA[ 
        delete Employee where empno = :empno
     ]]>
 </query>
 <query id="emp.delete.2" desc="" isNamed="true">
     <![CDATA[ 
        delete Employee where ename in (:ename1, :ename2, :ename3)
     ]]>
 </query>
 
 hbm.xml
  - Sample Entity
 <hibernate-mapping>
     <class name="sample.vo.Employee" table="EMP" dynamic-update="true">
         <id name="empno" column="EMPNO" type="big_decimal"/>
         <property name="ename" column="ENAME" type="string"/>
         <property name="job" column="JOB" type="string"/>
         <property name="mgr" column="MGR" type="big_decimal"/>
         <property name="hiredate" column="HIREDATE" type="timestamp"/>
         <property name="sal" column="SAL" type="big_decimal"/>
         <property name="comm" column="COMM" type="big_decimal"/>
         <property name="deptno" column="DEPTNO" type="big_decimal"/>
     </class>
 </hibernate-mapping>
 
 사용 예
 
 - case 1 :
 
 <activity name="Delete" class= "com.poscoict.glueframework.biz.activity.hibernate.GlueHibernateDelete">
     <property name="dao" value="hibernateDao" />
     <property name="sql-key" value="emp.delete" />
     <property name="entity-name" value="sample.vo.Employee" />
     <transition name="success" value="end" />
 </activity>
 
 - case 2 : named param이 entitiy의 property와 같고, ctx key와 같지 않은 경우
 
 <activity name="Delete" class= "com.poscoict.glueframework.biz.activity.hibernate.GlueHibernateDelete">
     <property name="dao" value="hibernateDao" />
     <property name="sql-key" value="emp.delete" />
     <property name="entity-name" value="sample.vo.Employee" />
     <property name="param-bindings" value="ename=ename_d1" />
     <transition name="success" value="end" />
 </activity>
 
 - case 3 : named param이 entitiy의 property와 같지 않고, ctx key와 같은 경우
 
 <activity name="Delete" class= "com.poscoict.glueframework.biz.activity.hibernate.GlueHibernateDelete">
     <property name="dao" value="hibernateDao" />
     <property name="sql-key" value="emp.delete2" />
     <property name="entity-name" value="sample.vo.Employee" />
     <property name="entity-bindings" value="ename1=ename|ename2=ename|ename3=ename" />
     <transition name="success" value="end" />
 </activity>
 
 - case 4 : named param이 entitiy의 property와 같지 않고, ctx key와 같지 않은 경우
 
 <activity name="Delete" class= "com.poscoict.glueframework.biz.activity.hibernate.GlueHibernateDelete">
     <property name="dao" value="hibernateDao" />
     <property name="sql-key" value="emp.delete2" />
     <property name="entity-name" value="sample.vo.Employee" />
     <property name="entity-bindings" value="ename1=ename|ename2=ename|ename3=ename" />
     <property name="param-bindings" value="ename1=ename_d1|ename2=ename_d2|ename3=ename_d3" />
     <transition name="success" value="end" />
 </activity>
 
 Property 설정
 
 - dao : (필수) applicationContext.xml의 DAO id. Hibernate용 dao id를 입력한다.
 - entity-name : (필수) Delete 시 HQL의 Entity name을 지정한다. 
         named param에 binding 되는 값을 Casting하는 근거가 된다..
 - sql-key : (필수) xxx-hquery.glue_sql의 query id. 
         Hibernate용 Query(HQL)를 지정하며, named query 이여야 한다. 
 - result-key : (선택) Context에 담기는 Query 수행 결과 Key.
         [ default ] : _result.
         수행 결과는 수행건수이다.
 - entity-bindings : (선택) hql의 named param과 mapping되는 entity property 또는 id name을 정의한다.
         hql의 named param과 대응 되는 entity의 property 또는 id 가 같을 경우 생략한다.
         named param에 binding 되는 값은 entity field의 type으로 Casting 하는 근거가 된다. 
 - param-bindings : (선택) hql의 named param과 binding에 사용되는 값과 Mapping 되는 Key.
         hql의 named param과 대응 되는 ctx의 key가 전부 같은 경우만 생략한다(대소문자 구분).
         hql의 named param과 대응 되는 ctx의 key가 전부 같지 않을 경우, binding data를 위한 별도의 Map이 생성되므로
         named param과 ctx key가 같은것도 기술한다.
 


Field Summary
 
Fields inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
dynamicProperties, logger
 
Constructor Summary
GlueHibernateDelete()
           
 
Method Summary
protected  void preRunActivity(GlueContext ctx)
           
 String runActivity(GlueContext ctx)
          Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다.
 
Methods inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
commitTransaction, getDao, getEventList, getName, getProperty, getPropertyNames, getTransition, rollbackTransaction, setEventList, setName, setProperty, setTransition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlueHibernateDelete

public GlueHibernateDelete()
Method Detail

preRunActivity

protected void preRunActivity(GlueContext ctx)

runActivity

public String runActivity(GlueContext ctx)
Description copied from class: GlueActivity
Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.

Specified by:
runActivity in class GlueActivity<GlueContext>
Parameters:
ctx - GlueContext
Returns:
String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.
 예) 
 <transition name="success" value="BizLogic"/>
 <transition name="failure" value="ErrorHandle"/>
 ==> return "success"이면 BizLogic Activity 를 실행함.
 


Copyright © 2013–2014 POSCO ICT SW제품기술팀. All rights reserved.