指定された 2 つの日付範囲に対して MySQL StoredProcedure(EmployeeAbsentReport プロシージャ) があります。MySql Commandpromptで正常に実行されています。Hibernateを使用してこのストアドプロシージャを実行するにはどうすればよいですか、ストアドプロシージャの例を呼び出す方法に関する例を1つ見つけましたが、例のプログラムでは、彼は単一のテーブルで作業しました。
手順:
DELIMITER $$
DROP PROCEDURE IF EXISTS `AbsentReportproc`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `AbsentReportproc`(IN _fromdate DATETIME, IN _todate DATETIME)
BEGIN
CREATE TEMPORARY TABLE daterange25 (dte DATE);
SET @counter := 0;
WHILE (@counter < DATEDIFF(DATE(_todate), DATE(_fromdate))) DO
INSERT INTO daterange25 VALUES (DATE_ADD(_fromdate, INTERVAL @counter:=@counter + 1 DAY));
END WHILE;
SELECT tp.EMPCODE,tp.NAME,tp.DEPARTMENT, Group_Concat(d.dte order by d.dte SEPARATOR '\n')AbsentDate, COUNT(tp.EMPCODE) Totalnoofabsentdates
FROM Master tp
JOIN daterange25 d
LEFT JOIN Transactions tpt ON (tp.EMPCODE = tpt.empcode) AND DATE(S_DateTime) = d.dte
WHERE tpt.empcode IS NULL
GROUP BY tp.EMPCODE;
DROP TABLE daterange25;
END$$
DELIMITER ;
結合(一時テーブルを含む)でHibernateを使用してストアドプロシージャを呼び出し、XMLマッピングファイルにsql-queryを書き込む方法は?