ファンクションやプロシージャの実行
いま実装中です。Daoの定義はこうなる予定。
@Dao(config = MyConfig.class) public interface EmployeeDao { @Function Salary getTotalSalary(@In Id deptId, @Out Salary average, @ResultSet List<Employee> employees); @Procedure(name = "aaa_proc") void fillTotalSalary(@In Id deptId, @Out Salary total, @ResultSet List<Employee> employees); ... }
メソッドには@Functionや@Procedureを注釈し、パラメータには@In、@Out、@InOut、@ResultSetなどを注釈してパラメータの種別を指定します。@Inは省略可能です。 やっぱり指定必須にしました。明示したほうがわかりやすいので。
利用する側はこんなります。
Id id = new Id(99); Salary average = new Salary(); List<Employee> employees = new ArrayList(); Salary total = dao.getTotalSalary(id, average, employees);
S2DaoやS2JDBCのファンクションやプロシージャ呼び出しではパラメータをDTOで渡す必要がありますが、Domaでは不要というところが新しいかな。