[英]to_char function throws exception with Hibernate
我正在嘗試在grails域對象上執行sql語句。 直接在db(h2)上執行時,工作正常。
Call.executeQuery "select to_char(date,'DD') from Call"
通過休眠,我得到:
沒有節點的數據類型:org.hibernate.hql.internal.ast.tree.MethodNode-[METHOD_CALL] MethodNode:'('+-[METHOD_NAME] IdentNode:'to_char'{originalText = to_char}-[EXPR_LIST] SqlNode:' exprList'+-[DOT] DotNode:'call0_.date'{propertyName = date,dereferenceType = PRIMITIVE,getPropertyPath = date,path = {synthetic-alias} .date,tableAlias = call0_,className = com.olamagic.Call,classAlias = null} | +-[IDENT] IdentNode:'{synthetic-alias}'{originalText = {synthetic-alias}} |-[[IDENT] IdentNode:'date'{originalText = date}-[QUOTED_STRING] LiteralNode:” DD'
在H2上直接執行SQL語句時,您正在執行H2的SQL。 GormEntity.executeQuery(String sql)
方法執行HQL,而不是SQL。
HQL沒有to_char()
函數。 因此,獲得同等結果將涉及更多:
select case when day(date) > 9 then cast(day(date) as text) else concat('0', day(date)) end from Call
如果您不介意以整型作為一天,那么查詢將簡化為:
select day(date) from Call
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.