Hibernate @Formula在运行时设置值

时间:2017-04-26 13:32:38

标签: hibernate

我有一个带有注释@Formula的字段的Java实体,其中执行包含Firebird数据库的某些特定功能的SQL查询。 现在我必须迁移到Oracle数据库,我需要替换@Formula中的SQL代码。 有没有办法实现这个目标?我可以以某种方式扩展Hibernate @Formula以便在运行时更改注释的值吗? 感谢

1 个答案:

答案 0 :(得分:5)

你可以实现这种稍微不同的方式。

您可以在@Formula占位符"{TO_BE_REPLACED}"中添加Hibernate Interceptor来更改onPrepareStatement。 在那里你可以改变hibernate生成的SQL。 JUst检查SQL字符串并用您的实际值替换{TO_BE_REPLACED}

了解如何添加拦截器here