一尘不染

在运行时休眠@Formula设置值

hibernate

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


阅读 218

收藏
2020-06-20

共1个答案

一尘不染

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

您可以放置@Formula一个占位符"{TO_BE_REPLACED}"并添加一个Hibernate
Interceptor来更改onPrepareStatement。在那里您可以更改由hibernate生成的SQL。JUst检查SQL字符串并将替换为{TO_BE_REPLACED}您的实际值。

在此处了解如何添加拦截器

2020-06-20