2017-04-26 30 views
1

我有一個Java實體,它帶有一個註解@Formula的字段,其中執行了一個包含Firebird數據庫某些特定功能的SQL查詢。 現在我必須遷移到Oracle數據庫,並且我需要替換@Formula中的SQL代碼。 有沒有辦法做到這一點?我可以以某種方式擴展Hibernate @Formula以便在運行時更改註釋的值嗎? 謝謝Hibernate @Formula運行時設置值

回答

1

你可以實現這個稍微不同的方式。

您可以在@Formula佔位符"{TO_BE_REPLACED}"中添加一個Hibernate攔截器來更改onPrepareStatement。 在那裏你可以改變由休眠生成的SQL。 JUst檢查SQL字符串並將{TO_BE_REPLACED}替換爲您的實際值。

查看如何添加攔截器here

+0

這正是我一直在尋找的。謝謝 ! –

+0

然後接受答案是正確的。不用謝。 – StanislavL