如何防止Hibernate公式注释在保留字前添加表名?

Ean*_*n V 6 java sql-server hibernate

我的班级映射如下:

@Entity
public class Order {
    private String formulatedProp;

    @Formula(value="(SELECT ',' + coalesce(a.description,a.code) 
                    FROM another_table a 
                    WHERE a.order_id=id FOR XML PATH(''))")
    public String getFormulatedProp() {
        return formulatedProp;
    }
}
Run Code Online (Sandbox Code Playgroud)

该公式的 SQL 查询在单独执行时效果很好。但是当 Hibernate 生成查询来获取订单时,它会将表的别名附加到FORXML单词上。所以它尝试执行类似的查询

SELECT ',' + coalesce(a.description,a.code) 
    FROM another_table a 
    WHERE a.order_id=order0_.id order0_.FOR order0_.XML PATH('')
Run Code Online (Sandbox Code Playgroud)

这显然是错误的。我怎样才能做到这一点?
环境:Hibernate 3.6SQL-Server 2008

PS 我知道自定义方言可以是一个解决方案,但我不想朝这个方向发展。

Ser*_*edo 4

您可以使用我在这个问题中编写的相同解决方案:/sf/answers/1883538961/

简短的答案是扩展您使用的休眠方言类并注册新的保留字。