Index: web-module/script/ddl/oracle/egovframework/api/Menu_DDL_Oracle.sql =================================================================== diff -u --- web-module/script/ddl/oracle/egovframework/api/Menu_DDL_Oracle.sql (revision 0) +++ web-module/script/ddl/oracle/egovframework/api/Menu_DDL_Oracle.sql (revision dee5bf34a2bdc22768e59d15af21f9c2147abc25) @@ -0,0 +1,130 @@ +/* + * JsTree 추적 로그 테이블 + * 트리거 Log를 저장합니다. + */ +CREATE TABLE T_JSTREE_MENU_LOG +( + C_ID NUMBER NOT NULL, + C_PARENTID NUMBER NOT NULL, + C_POSITION NUMBER NOT NULL, + C_LEFT NUMBER NOT NULL, + C_RIGHT NUMBER NOT NULL, + C_LEVEL NUMBER NOT NULL, + C_TITLE VARCHAR2(4000 BYTE), + C_TYPE VARCHAR2(4000 BYTE), + C_METHOD VARCHAR2(4000 BYTE), + C_STATE VARCHAR2(4000 BYTE), + C_DATE DATE NOT NULL +); + +COMMENT ON TABLE T_JSTREE_MENU_LOG IS '기본 트리 스키마 트리거 로그'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_ID IS '노드 아이디'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_PARENTID IS '부모 노드 아이디'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_POSITION IS '노드 포지션'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_LEFT IS '노드 좌측 끝 포인트'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_RIGHT IS '노드 우측 끝 포인트'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_LEVEL IS '노드 DEPTH '; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_TITLE IS '노드 명'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_TYPE IS '노드 타입'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_METHOD IS '노드 변경 행위'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_STATE IS '노드 상태값 ( 이전인지. 이후인지)'; +COMMENT ON COLUMN T_JSTREE_MENU_LOG.C_DATE IS '노드 변경 시'; + +/* + * JsTree + */ +CREATE TABLE T_JSTREE_MENU +( + C_ID NUMBER NOT NULL, + C_PARENTID NUMBER NOT NULL, + C_POSITION NUMBER NOT NULL, + C_LEFT NUMBER NOT NULL, + C_RIGHT NUMBER NOT NULL, + C_LEVEL NUMBER NOT NULL, + C_TITLE VARCHAR2(4000 BYTE), + C_TYPE VARCHAR2(4000 BYTE), + C_LINK VARCHAR2(4000 BYTE), + CONSTRAINT T_JSTREE_MENU_PK PRIMARY KEY (C_ID) + /* + * CONSTRAINT T_JSTREE_MENU_FK1 FOREIGN KEY (OTHER_ID) REFERENCES OTHER T_JSTREE_MENU(C_ID) ON DELETE CASCADE + */ +); + +COMMENT ON TABLE T_JSTREE_MENU IS '기본 트리 스키마'; +COMMENT ON COLUMN T_JSTREE_MENU.C_ID IS '노드 아이디'; +COMMENT ON COLUMN T_JSTREE_MENU.C_PARENTID IS '부모 노드 아이디'; +COMMENT ON COLUMN T_JSTREE_MENU.C_POSITION IS '노드 포지션'; +COMMENT ON COLUMN T_JSTREE_MENU.C_LEFT IS '노드 좌측 끝 포인트'; +COMMENT ON COLUMN T_JSTREE_MENU.C_RIGHT IS '노드 우측 끝 포인트'; +COMMENT ON COLUMN T_JSTREE_MENU.C_LEVEL IS '노드 DEPTH '; +COMMENT ON COLUMN T_JSTREE_MENU.C_TITLE IS '노드 명'; +COMMENT ON COLUMN T_JSTREE_MENU.C_TYPE IS '노드 타입'; + +/* + * 인덱스는 되도록 걸지 말것. + * CREATE UNIQUE INDEX I_COMPREHENSIVETREE ON T_JSTREE_MENU + * ("C_ID" ASC) + */ + /* +*DROP SEQUENCE S_JSTREE_MENU; + */ +CREATE SEQUENCE S_JSTREE_MENU + START WITH 10 + MAXVALUE 999999999999999999999999999 + MINVALUE 0 + NOCYCLE + CACHE 20 + NOORDER; + +/* + * JsTree 트리거 + */ +CREATE OR REPLACE TRIGGER "TRIGGER_TREE_MENU" +BEFORE DELETE OR INSERT OR UPDATE +ON T_JSTREE_MENU +REFERENCING NEW AS NEW OLD AS OLD +FOR EACH ROW +DECLARE +tmpVar NUMBER; +/****************************************************************************** + NAME: TRIGGER_COMPREHENSIVETREE + PURPOSE: + + REVISIONS: + Ver Date Author Description + --------- ---------- --------------- ------------------------------------ + 1.0 2012-08-29 1. Created this trigger. + + NOTES: + + Automatically available Auto Replace Keywords: + Object Name: TRIGGER_COMPREHENSIVETREE + Sysdate: 2012-08-29 + Date and Time: 2012-08-29, 오후 5:26:44, and 2012-08-29 오후 5:26:44 + Username: (set in TOAD Options, Proc Templates) + Table Name: T_JSTREE_MENU (set in the "New PL/SQL Object" dialog) + Trigger Options: (set in the "New PL/SQL Object" dialog) +******************************************************************************/ +BEGIN + tmpVar := 0; + IF UPDATING THEN + insert into T_JSTREE_MENU_LOG + values (:old.C_ID,:old.C_PARENTID,:old.C_POSITION,:old.C_LEFT,:old.C_RIGHT,:old.C_LEVEL,:old.C_TITLE,:old.C_TYPE,'update','변경이전데이터',sysdate); + insert into T_JSTREE_MENU_LOG + values (:new.C_ID,:new.C_PARENTID,:new.C_POSITION,:new.C_LEFT,:new.C_RIGHT,:new.C_LEVEL,:new.C_TITLE,:new.C_TYPE,'update','변경이후데이터',sysdate); + END IF; + IF DELETING THEN + insert into T_JSTREE_MENU_LOG + values (:old.C_ID,:old.C_PARENTID,:old.C_POSITION,:old.C_LEFT,:old.C_RIGHT,:old.C_LEVEL,:old.C_TITLE,:old.C_TYPE,'delete','삭제된데이터',sysdate); + END IF; + IF INSERTING THEN + insert into T_JSTREE_MENU_LOG + values (:new.C_ID,:new.C_PARENTID,:new.C_POSITION,:new.C_LEFT,:new.C_RIGHT,:new.C_LEVEL,:new.C_TITLE,:new.C_TYPE,'insert','삽입된데이터',sysdate); + END IF; + + EXCEPTION + WHEN OTHERS THEN + -- Consider logging the error and then re-raise + RAISE; +END TRIGGER_TREE_MENU; +/ \ No newline at end of file Index: web-module/script/dml/oracle/egovframework/api/Menu_DML_Oracle.sql =================================================================== diff -u --- web-module/script/dml/oracle/egovframework/api/Menu_DML_Oracle.sql (revision 0) +++ web-module/script/dml/oracle/egovframework/api/Menu_DML_Oracle.sql (revision dee5bf34a2bdc22768e59d15af21f9c2147abc25) @@ -0,0 +1,25 @@ +Insert into T_JSTREE_MENU + (C_ID, C_PARENTID, C_POSITION, C_LEFT, C_RIGHT, + C_LEVEL, C_TITLE, C_TYPE, C_LINK) +Values + (1, 0, 0, 1, 8, + 0, 'Root Node', 'root', 'blank_url'); +Insert into T_JSTREE_MENU + (C_ID, C_PARENTID, C_POSITION, C_LEFT, C_RIGHT, + C_LEVEL, C_TITLE, C_TYPE, C_LINK) +Values + (2, 1, 0, 2, 7, + 1, 'First Child', 'drive', 'blank_url'); +Insert into T_JSTREE_MENU + (C_ID, C_PARENTID, C_POSITION, C_LEFT, C_RIGHT, + C_LEVEL, C_TITLE, C_TYPE, C_LINK) +Values + (3, 2, 0, 3, 4, + 2, 'Leaf Node', 'default', 'blank_url'); +Insert into T_JSTREE_MENU + (C_ID, C_PARENTID, C_POSITION, C_LEFT, C_RIGHT, + C_LEVEL, C_TITLE, C_TYPE, C_LINK) +Values + (4, 2, 1, 5, 6, + 2, 'Branch Node', 'folder', 'blank_url'); +COMMIT; \ No newline at end of file Index: web-module/src/main/java/egovframework/api/menu/vo/MenuDTO.java =================================================================== diff -u -r3cf13cb8bad6bf58fa47db7775158af34554527b -rdee5bf34a2bdc22768e59d15af21f9c2147abc25 --- web-module/src/main/java/egovframework/api/menu/vo/MenuDTO.java (.../MenuDTO.java) (revision 3cf13cb8bad6bf58fa47db7775158af34554527b) +++ web-module/src/main/java/egovframework/api/menu/vo/MenuDTO.java (.../MenuDTO.java) (revision dee5bf34a2bdc22768e59d15af21f9c2147abc25) @@ -10,12 +10,12 @@ import java.io.Serializable; @Entity -@Table(name = "T_COMPREHENSIVE_MENU") +@Table(name = "T_JSTREE_MENU") @SelectBeforeUpdate(value = true) @DynamicInsert(value = true) @DynamicUpdate(value = true) @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@SequenceGenerator(name = "JsTreeSequence", sequenceName = "S_COMPREHENSIVE_MENU", allocationSize = 1) +@SequenceGenerator(name = "JsTreeSequence", sequenceName = "S_JSTREE_MENU", allocationSize = 1) public class MenuDTO extends JsTreeHibernateSearchDTO implements Serializable { private static final long serialVersionUID = 5641929581490357882L;