当前位置: 首页 > 知识库问答 >
问题:

UDF处于Hibernate状态

斜宁
2023-03-14


再次,我很困惑...我相信我的问题有一个简单的答案。


我的问题是;我如何告诉Hibernate MySQL包含中值函数,而不是返回错误?

[IllegalStateException:没有节点的数据类型:org.hibernate.hql.internal.ast.tree.MethodNode-[METHOD_CALL]MethodNode:'('-[METHOD_NAME]IdentNode:'MEDIAN'{originalText=MEDIAN}-[EXPR_LIST]SqlNode:'exprList'-[DotNode:'elk0.weight'{propertyName=weight,dereferenceType=PRIMITIVE,getPropertyPath=weight,path={合成别名}.weight,tableAlias=elk0,className=models.Elk,classAlias=null}-[IDENT]IdentNode:'{synthetic alias}'{originalText={synthetic alias}}}-[IDENT]IdentNode:'weight'{originalText=weight}]

共有1个答案

咸亦
2023-03-14

您必须创建一个包含新函数的新类。这个类将扩展您当前的方言mysql5dialogue。

 public class CustomMySQLDialect extends MySQL5Dialect{
   public CustomMySQLDialect()
   {
          super();
          registerFunction("median", new StandardSQLFunction("median"));
   }
}

现在您必须告诉hibernate使用新创建的方言。我假设您有一个配置了hibernate的XML文件。

 <property name="hibernate.dialect">com.hibernate.custom.dialect.CustomMySQLDialect</property>

有关更多信息,请查看Keyur Joshi的博客文章

 类似资料:
  • 问题涉及的方法是: 编辑。以下是完整的堆栈跟踪(一些消息是西班牙语的):

  • 问题内容: 从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有任何关于哪些

  • 地址 address_id INT PK AutoIncr 城市Varchar 国家varchar 员工 null

  • 我有一个带有唯一约束的字段'nom'的表,当我测试插入表中已经存在的该字段的值时,会抛出org.hibernate.exception.ConstraintViolationExcure。然后在我坚持之后,我得到了一个事务已经活动的异常。 这是我在Dao类中的持久化方法 这里是我捕获异常的代码 如何解决此事务问题?

  • 问题内容: 作为升级JRun的一部分,我们正在从1.4 JVM迁移到1.6 JVM。现在,我收到一个非常奇怪的oracle db错误:“ OALL8处于不一致状态”。我已经解决了插入根本不使用绑定变量的查询的问题- 所有内联参数。如果我在没有任何绑定变量的情况下运行查询,则会收到上述错误。一旦我用绑定变量替换了一个硬编码值,一切都会正常工作。 另一个奇怪的地方是,在执行查询之后,它实际上已提交给数