Hibernate @formula 不支持将 Cast() 作为 teradata 数据库的 int

use*_*137 4 hibernate formula

我在用

@Formula("cast(item_code as \"int\")")
Run Code Online (Sandbox Code Playgroud)

将一String列投射到int

hibernate正在生成查询

and cast(this_.item_code as this_."int")=? 
Run Code Online (Sandbox Code Playgroud)

怎么去掉alias前面的int

我试过 :

@Formula("cast(item_code as "int")")@Formula("cast(item_code as int)")

但还是同样的错误。我如何投射Stringint

提前致谢 。

Ser*_*edo 6

我已经解决了一个和你类似的问题。我为我的数据库扩展了休眠方言类。

public class Oracle10gDialectExtended extends Oracle10gDialect {

    public Oracle10gDialectExtended() {
        super();
        /* types for cast: */
        registerKeyword("int");
        // add more reserved words as you need
    }
}
Run Code Online (Sandbox Code Playgroud)

使用这个新类设置 'hibernate.dialect' 属性。现在您的@Formula 将起作用。