2014-12-07 22 views
1

我有一個配置爲使用Spring Data(@Repository)註釋執行的Hibernate查詢。 我想在查詢提交給數據庫之前捕捉到查詢,並在滿足特定條件時稍微修改它。休眠和彈出修改查詢提交到數據庫之前

這樣做的最佳選擇是什麼?我推薦JPA解決方案,而不是Hibernate解決方案,但是Hibernate解決方案也可以工作。

+0

安置自己的@Repository代碼。 – 2014-12-08 06:33:00

+2

在你的dao層處理這個。你不需要'捕捉'查詢,但是要考慮到特定的條件來構建它。 – sergiu 2014-12-08 13:38:24

回答

2

如果您想在準備好的語句後修改查詢,您可以將其寫入Hibernate Interceptor,並在Spring DB Configuration期間註冊它。

您的MyInterceptor應該實現Hibernate Interceptor.class或擴展EmptyInterceptor.class。你正在尋找的方法是:

public String onPrepareStatement(String sql); 

如果你需要更多的東西,你能給與事件監聽器一試,但我不知道有一個對你的情況。

這裏一些文檔:執行數據庫操作

Hibernate 4.0 Interceptors and events How to integrate an Interceptor with Spring