<?xml version="1.0" encoding="UTF-8"?> <!-- $Author: DJ $Date: 2014-1-16 下午2:42:45 $Revision: 1.0 $Purpose: --> <bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm" xmlns:f="leaf.database.features" alias="t1" baseTable="SYS_NOTICE_MSG" trace="true"> <bm:fields> <bm:field name="notice_msg_id" databaseType="NUMBER" datatype="java.lang.Long" physicalName="NOTICE_MSG_ID" prompt="SYS_NOTICE_MSG.NOTICE_MSG_ID"/> <bm:field name="notice_user_id" databaseType="NUMBER" datatype="java.lang.Long" physicalName="NOTICE_USER_ID" prompt="SYS_NOTICE_MSG.NOTICE_USER_ID"/> <bm:field name="msg_title" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="MSG_TITLE" prompt="SYS_NOTICE_MSG.MSG_TITLE"/> <bm:field name="child_msg_title"/> <bm:field name="msg_info" forInsert="false" forUpdate="false"/> <bm:field name="notice_type" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="NOTICE_TYPE" prompt="SYS_NOTICE_MSG.NOTICE_TYPE"/> <bm:field name="start_date_active" databaseType="DATE" datatype="java.util.Date" physicalName="START_DATE_ACTIVE" prompt="SYS_NOTICE_MSG.START_DATE_ACTIVE"/> <bm:field name="end_date_active" databaseType="DATE" datatype="java.util.Date" physicalName="END_DATE_ACTIVE" prompt="SYS_NOTICE_MSG.END_DATE_ACTIVE"/> <bm:field name="source_type" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="SOURCE_TYPE" prompt="SYS_NOTICE_MSG.SOURCE_TYPE"/> <bm:field name="source_id" databaseType="NUMBER" datatype="java.lang.Long" physicalName="SOURCE_ID" prompt="SYS_NOTICE_MSG.SOURCE_ID"/> <bm:field name="creation_date"/> <bm:field name="msg_body"/> <bm:field name="status"/> <bm:field name="priority"/> <bm:field name="operation_flag"/> <bm:field name="operation_url"/> <bm:field name="expand_flag"/> <bm:field name="notice_url" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="NOTICE_URL" prompt="SYS_NOTICE_MSG.NOTICE_URL"/> </bm:fields> <bm:operations> <bm:operation name="query"> <bm:query-sql><![CDATA[ SELECT t.* FROM ( (SELECT NULL msg_title, t1.msg_title child_msg_title, NULL notice_user_id, NULL notice_msg_id, NULL msg_info, NULL notice_type, NULL start_date_active, NULL end_date_active, NULL enabled_flag, NULL source_type, NULL source_id, NULL msg_body, NULL creation_date, NULL status, NULL priority, 'Y' expand_flag, NULL notice_url, NULL operation_flag, NULL operation_url FROM sys_notice_msg_v t1 WHERE t1.enabled_flag='Y' AND ( t1.notice_user_id = ${/session/@user_id} OR t1.notice_user_id IS NULL ) AND t1.status='OPEN' GROUP BY msg_title ) UNION ALL (SELECT t1.msg_title, NULL child_msg_title, t1.notice_user_id, t1.notice_msg_id, t1.msg_title || ' ' || TO_CHAR(t1.start_date_active, 'yyyy-mm-dd hh24:mi:ss') AS msg_info, t1.notice_type, t1.start_date_active, t1.end_date_active, t1.enabled_flag, t1.source_type, t1.source_id, t1.msg_body, TO_CHAR(t1.creation_date, 'yyyy-mm-dd hh24:mi:ss') creation_date, t1.status, t1.priority, 'N' expand_flag, t1.notice_url, t1.operation_flag, null operation_url FROM sys_notice_msg_v t1 #WHERE_CLAUSE# )) t START WITH t.msg_title IS NULL CONNECT BY t.msg_title = prior t.child_msg_title ORDER BY t.creation_date DESC ]]></bm:query-sql> </bm:operation> <bm:operation name="update"> <bm:parameters> <bm:parameter name="notice_msg_id" dataType="java.lang.Long" input="true" output="false"/> </bm:parameters> <bm:update-sql><![CDATA[ begin update sys_notice_msg m set m.priority=3 where m.notice_msg_id=${@notice_msg_id}; end; ]]></bm:update-sql> </bm:operation> </bm:operations> <bm:query-fields> <bm:query-field name="notice_message" queryExpression="(t1.msg_body like '%'||${@notice_message}||'%' or t1.msg_title like '%'||${@notice_message}||'%' or (to_char(t1.creation_date, 'yyyy-mm-dd hh24:mi:ss') like '%'|| ${@notice_message} || '%'))"/> </bm:query-fields> <bm:data-filters> <bm:data-filter enforceOperations="query" expression="t1.enabled_flag='Y' and (t1.notice_user_id = ${/session/@user_id} or t1.notice_user_id is null) and t1.status='OPEN'"/> </bm:data-filters> <bm:primary-key> <bm:pk-field name="notice_msg_id"/> </bm:primary-key> </bm:model>