2017-09-05 14 views
1

私はspring-boot 1.5.6 RELEASEを使用しています。私は基本的なことをしたい、リポジトリ内の@Query注釈から私のクエリを任意のxmlファイルに移動したい。バネ起動アプリケーションで外部化クエリ

少し読んだら、orm.xmlまたはjpa-named-queries.propertiesを使用してカスタムクエリを書くことができるとわかりました。

これらのXMLファイルが存在する必要があるファイル構造についてはわかりません。私のプロジェクトにはMETA-INFというフォルダはありません。

例:

POJOクラス:

@Entity 
public Class Customer { 

private int id; 
private String name; 

// getters and setters 
} 

レポジトリ:

public interface CustomerRepository extends PagingAndSortingRepository<Customer,Integer> { 

// this query I need from an external xml file as it might be quite complex in terms of joins 
@Query("Select cust from Customers cust") 
public List<Customer> findAllCustomers(); 

} 

EDIT:this stackoverflow question呼びます。 META-INFフォルダがないので、これらのファイル(orm.xmlpersistence.xml)をどこに保存する必要があるかを知る必要があります。

ありがとうございます!

+0

[SpringデータJPAで名前付きクエリにXML設定を使用する方法]の複製がありますか?(https://stackoverflow.com/questions/24931248/how-to-use-xml-configuration-for-named-queries-in- spring-data-jpa) – Todd

+0

はい、私はこの質問に出会った。しかし、私が言及したように、私は 'META-INF'フォルダを持っていないので、これらの' properties/xml'ファイルをどこに格納しなければならないかについて非常に混乱しています。 @Todd – Anusha

+1

githubの例をhttps://github.com/eclipse/examples/tree/master/jpa/employee.dynamic/src/main/resources/META-INFとhttp://webdev.jhuep.com/で確認してください。 〜jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/hibernate-migration-orm.html、META-INFが存在しない場合は、作成する必要があります。 –

答えて

3

META-INFresources内部のフォルダを作成します。そのMETA-INFフォルダ内にjpa-named-queries.propertiesというファイルを作成します。

このプロパティは、このようなファイル内のクエリを書く:あなたの顧客のリポジトリで

Customer.findAllCustomerByNamedQuery=Select c from Customer c

Customer表すエンティティクラスの名前と findAllCustomerByNamedQueryは、クエリ名です

クエリを呼び出すために、これを書きますプロパティファイルに書かれている:

List<Customer> findAllCustomerByNamedQuery();

+0

ありがとう!私のために手動でMETA-INFを作成しました! application.propertiesのようなファイルとともに作成されない理由はありますか? – Anusha

+0

理由が分からない –

+0

ありがとうございます!正確に何が探していたのですか?これらの情報はどこで見つかりましたか? –

関連する問題