ホームページ >データベース >mysql チュートリアル >JPA を使用して Java でストアド プロシージャを呼び出すにはどうすればよいですか?
Java および JPA でストアド プロシージャを呼び出す
ビジネス ロジックをストアド プロシージャに保存すると、パフォーマンスとコードの保守性が向上します。この記事では、JPA を使用して Java からストアド プロシージャを呼び出す 2 つの方法、CallableStatement メソッドと JPA 2.1 StoredProcedureQuery について説明します。
CallableStatement メソッド
CallableStatement クラスは、ストアド プロシージャを呼び出すための汎用メソッドを提供します。これにより、入力パラメータを指定し、出力パラメータまたは結果セットを取得できます。ただし、SQL 型と Java オブジェクトの間の手動マッピングが必要であり、面倒な場合があります。
JPA 2.1 StoredProcedureQuery
JPA 2.1 では、ストアド プロシージャを呼び出すための組み込みサポートが導入されました。 StoredProcedureQuery クラスを使用すると、入力パラメータを渡し、結果クラスまたは resultSetMapping を指定できるようになり、このプロセスが簡素化されます。
JPA StoredProcedureQuery を使用して「getEmployeeDetails」ストアド プロシージャを呼び出します:
<code class="language-java">Query query = em.createNativeQuery("{call getEmployeeDetails(?,?)}", EmployeeDetails.class) .setParameter(1, employeeId) .setParameter(2, companyId); List<EmployeeDetails> result = query.getResultList();</code>
JPA を使用してストアド プロシージャを呼び出す利点
ストアド プロシージャを呼び出す SQL ステートメント
ストアド プロシージャを呼び出すための正しい SQL ステートメントは次のとおりです:
<code class="language-sql">{call getEmployeeDetails(?,?)}</code>
注: ストアド プロシージャ名を中括弧で囲み、パラメータをカンマと疑問符 (?) で区切ります。
その他の注意事項:
以上がJPA を使用して Java でストアド プロシージャを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。