Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate@Formula关于';转换(日期)和#x27;_Java_Hibernate - Fatal编程技术网

Java hibernate@Formula关于';转换(日期)和#x27;

Java hibernate@Formula关于';转换(日期)和#x27;,java,hibernate,Java,Hibernate,我正在使用SQLServer2012,我的实体是 public class Something { private Date rq; @Temporal(TemporalType.TIMESTAMP) @Column(name = "rq") @Formula("CONVERT(DATE,rq)") public Date getRq() { return Rq; } public void setRq(Date rq

我正在使用SQLServer2012,我的实体是

public class Something {

    private Date rq;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "rq")
    @Formula("CONVERT(DATE,rq)")
    public Date getRq() {
        return Rq;
    }

    public void setRq(Date rq) {
     this.Rq = rq;
    }
}
休眠调试日志:

Hibernate: 
select
    CONVERT(dnypowergr0_.DATE,
    dnypowergr0_.rq) as formula0_ 
from
    db.dbo.something dnypowergr0_
我想得到能够真正“转换”的“rq”的结果,但正如日志所示,“convert”的第一个参数添加了表的别名,因此此sql是错误的


我是否编写了错误的代码或使用了“@Formula”的一部分?

不知道如何使hibernate不在不需要的地方插入表别名。但有一个解决办法。 您可以定义一个瞬态属性(类似于
convertedRq
)并在Java中转换值。在这种情况下,
rq
将包含
rq
字段的纯值,
convertedRq
将动态计算

更新:解决方案已发布在此处:


(c) Sergio M c Figueiredo不知道如何使hibernate不在不需要的地方插入表别名。但有一个解决办法。 您可以定义一个瞬态属性(类似于
convertedRq
)并在Java中转换值。在这种情况下,
rq
将包含
rq
字段的纯值,
convertedRq
将动态计算

更新:解决方案已发布在此处:

(c) 塞尔吉奥M c菲盖雷多

public class Oracle10gDialectExtended extends Oracle10gDialect {

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