首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate标准API:无法使用sqlRestriction(.):ORA-00904:无效标识符

Hibernate标准API:无法使用sqlRestriction(.):ORA-00904:无效标识符
EN

Stack Overflow用户
提问于 2022-09-20 14:46:14
回答 1查看 42关注 0票数 0

有没有人知道为什么下面的sqlRestriction不工作。我正在使用本机Oracle trunc(..)函数来修剪日期的时间部分。

代码语言:javascript
运行
复制
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(Publication.class);

// Some other, non-SQL restrictions...

criteria.add(Restrictions.sqlRestriction("trunc(pubmedImportDate) >= ?", 
                                         todayMinus24Months, 
                                         org.hibernate.type.StandardBasicTypes.DATE));

错误:由: java.sql.SQLSyntaxErrorException: ORA-00904:“PUBMEDIMPORTDATE”引起:无效标识符

查询基于具有此字段的域类Publication

代码语言:javascript
运行
复制
public class Publication implements java.io.Serializable {
   //...
   private Date pubmedImportDate;
   //..
    public Date getPubmedImportDate() {
        return this.pubmedImportDate;
    }
    public void setPubmedImportDate(Date pubmedImportDate) {
        this.pubmedImportDate = pubmedImportDate;
    }
}

我需要在pubmedImportDate前加上别名吗?我看到pubmedImportDate从未链接到Hibernate的别名this_

我试过这两种:

代码语言:javascript
运行
复制
Criteria criteria = session.createCriteria(Publication.class);
Criteria criteria = session.createCriteria(Publication.class, "p"); // with p.pubmedImportDate

但是,查询总是如下所示:

代码语言:javascript
运行
复制
from
    PUBLICATIONS_T this_ 
...
trunc(p.pubmedImportDate) >= ?

如何将其连接到this_

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-20 16:03:29

我找到了解决方案:必须使用{alias}.column_name将其链接到this_

代码语言:javascript
运行
复制
criteria.add(Restrictions.sqlRestriction("trunc({alias}.pubmed_import_date) >= ?", 
                                         todayMinus24Months, 
                                         org.hibernate.type.StandardBasicTypes.DATE));

还要注意,它必须是真正的DB列名(pubmed_import_date),而不是类属性(pubmedImportDate)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73788622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档