[英]How to prevent Hibernate formula annotation of adding table name before reserved words?
我的班級映射如下:
@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;
}
}
單獨執行公式時,SQL查詢很好。 但是,當Hibernate生成查詢以獲取Order時,它將表的別名附加到FOR
和XML
字中。 因此,它嘗試執行類似的查詢
SELECT ',' + coalesce(a.description,a.code)
FROM another_table a
WHERE a.order_id=order0_.id order0_.FOR order0_.XML PATH('')
這顯然是錯誤的。 我該如何進行這項工作?
環境: Hibernate 3.6 , SQL-Server 2008
附言:我知道自定義方言可以解決此問題,但我不希望朝這個方向發展。
您可以使用我在此問題中編寫的相同解決方案: https : //stackoverflow.com/a/26907699/825061
簡短的答案是擴展您使用的休眠方言類並注冊新的保留字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.