2017-09-05 131 views
1

我正在使用spring-boot 1.5.6 RELEASE。我想做一件基本的事情,將我的查詢從存儲庫中的@Query註釋移動到任何xml文件。在春季啓動應用程序中外部化查詢

經過一番閱讀,我發現我們可以使用orm.xmljpa-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(); 

} 

編輯:簡稱this stackoverflow question。我需要知道這些文件(orm.xmlpersistence.xml)需要存儲在哪裏,因爲我沒有META-INF文件夾。

在此先感謝!

+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

請在https://github.com/eclipse/examples/tree/master/jpa/employee.dynamic/src/main/resources/META-INF和http://webdev.jhuep.com/查看github示例。 〜jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/hibernate-migration-orm.html,如果META-INF不存在,那麼你必須創建它。 –

回答

3

resources文件夾內創建META-INF。現在在META-INF文件夾內創建jpa-named-queries.properties文件。

寫您的查詢中此屬性文件是這樣的:

Customer.findAllCustomerByNamedQuery=Select c from Customer c

如果實體類和findAllCustomerByNamedQueryCustomer分別表示名字是查詢名稱

在你的客戶資料庫寫這篇打電話查詢寫在屬性文件中:

List<Customer> findAllCustomerByNamedQuery();

+0

謝謝!創建META-INF手動爲我工作!是否有任何理由不會像application.properties一樣創建文件? – Anusha

+0

我不知道原因 –

+0

謝謝!究竟是在尋找什麼。你在哪裏找到這些信息? –

相關問題