老いぼれSEの艱難辛苦

ブログの説明を入力します。


テーマ:
JPA は SQL文を書かなくても自動生成してくれる。
でも、SQL文は外部ファイルにしたい時があるかもしれない。

そんなときの為に、外部ファイルにする方法を調べてみた。

まず、デフォルトで META-INF/orm.xml ファイルを見に行くらしい。
そのファイルに外だししたい SQL 文を書いておいて、@Query でその名前を指定すれば、
その SQL文 が使用される。

例えば orm.xml に

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd">
<named-query name="entity.findAll">
<query><![CDATA[
SELECT h FROM entity h
]]></query>
</named-query>
</entity-mappings>


これで、Repository クラス内で @Query アノテーションで orm.xml で SQL につけた名前の指定するのみ。

例えば Repository クラスに

@Query(name = "entity.findAll")
public List<entity> findAll();


orm.xml に全ての SQL文を定義するのはチェットと思い、
orm.xml を複数指定する方法も調べてみた。

META-INF/persistence.xml ファイルに orm.xml を別名で複数指定すればよい。

例えば、

<persistence-unit name="default">
<mapping-file>META-INF/header-orm.xml</mapping-file>
<mapping-file>META-INF/search-orm.xml</mapping-file>
</persistence-unit>


ここで、persistance-unit の name を "default" にする。
これで、SQL文を複数の外部ファイルで管理できるようになる。
AD
いいね!した人  |  コメント(0)  |  リブログ(0)

hiroさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

最近の画像つき記事  もっと見る >>

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。