9

JPA EntityManager を介してアクセスするデータベースに新しいテーブルを作成する必要があります。JPA NativeQueries は「選択」または「更新」以外のクエリをサポートしていますか? または、JPA コンテキストで複雑な SQL クエリを実行する別の最先端の方法はありますか?

4

2 に答える 2

17

jpa の「ネイティブ クエリ」は、DML ステートメント (データ操作言語) にのみ使用できます。create table などの DDL を発行するには、EntityManager から基礎となる接続を取得する必要があります。

EM から接続を抽出する方法は、使用している JPA 実装によって異なりますが、確実に EntityManager.getDelegate() の呼び出しが含まれます。

別の方法として (より良いアプローチだと思います)、テーブルを作成しようとするオブジェクトにスプリングを使用している場合は DataSource または JDBCTemplate を注入し、そのクラスを使用してテーブルを作成します。

于 2011-05-27T06:25:08.400 に答える