2012-01-23 5 views
0

セキュリティ上の理由から、Java Webアプリケーションを作成しており、データベースAPIを介してデータベース(PostgreSQL)にアクセスしたいと考えています。データベースのAPIは、データベース機能によって構築されます。テーブルAPIを使用したEntityManagerの使用

どのようにしてEntityManagerでAPI関数を呼び出すことができますか?私はネイティブクエリーの方法を考え出しましたが、ORMがあまり残っていないと思います。 entityManager.persist()メソッドをデータベース関数の1つに導く方法はありますか?

+0

基本的には、em.persist(...)が独自のカスタムデータベース関数を呼び出すようにしますか? – Perception

+0

はい、できますか? – tvoi

答えて

0

これはお勧めできません。 JPA全体のポイントは、データベースがアクセスされ、オブジェクト・レイヤーにマップされる方法を標準化することです。ネイティブDB関数を使用する場合は、おそらくSpringJDBCTemplateやその他のツールを使用してJDBCを使用する必要があります。あなたが本当に自分自身を罰する気がするなら、いつでもEntityManagerの独自の実装を作成し、それをあなたのクラスで使うことができます。

+0

しかし、基本的な目的は、API関数を呼び出す非特権のdb-userを介してのみアプリケーションにデータベースにアクセスすることです。このようなメカニズムを使用するには、EntityManagerを使用しないでください。別の方法がありますか? – tvoi

+0

これらのAPI関数を使用する必要があるビジネスディレクティブまたは技術リードディレクティブがある場合は、コーナーにペイントされます。その制限を与えた人は誰でも、これを強制して技術的なオプションを制限していることを知っているかどうかを確認してください。おそらく、JDBCを使うのが最善の策です。 – Perception

関連する問題