gpt4 book ai didi

java - org.hibernate.criterion.Restrictions 的 MYSQL 表列名称中的下划线抛出异常

转载 作者:行者123 更新时间:2023-11-29 12:08:02 24 4
gpt4 key购买 nike

我绝对是 Hibernate 的菜鸟,当表列名称有下划线时,我很难查询我的数据库。

据我所知,下划线被视为通配符。因此,解决方案是删除它并使用驼峰式命名列名。然而,这对我来说也不起作用。我真的很感激这里的一些帮助。

这是 SQL 表的创建:

enter image description here

这是我尝试查询的函数:

enter image description here

当我调用这个函数时,我得到以下堆栈跟踪:

Request processing failed; nested exception is org.hibernate.QueryException: could not resolve property: userId of....

我已经尝试过 userId 的多种变体:user_id、userId、user_ID、userID、userid,但没有任何效果。我真的很感激这里的一些帮助。提前致谢。另一件奇怪的事情是,如果我只为publishId 执行camelCasing,那么camelCasing 就可以工作。这对他们两个都不起作用......

这是带有注释的 Java 类:

enter image description here

最佳答案

在 JPQL (HQL) 中,您必须使用属性名称:

criteria.add(Restrictions.eq("userEmail", user));

这是 JPA 等 ORM 框架(当然还有 Hibernate 等提供者)的好处之一:您也可以在查询中使用面向对象的构造。

关于java - org.hibernate.criterion.Restrictions 的 MYSQL 表列名称中的下划线抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com