更新到 3.6.5 后,Hibernate 将属性映射到 SQL 公式失败

2024-05-24

我刚刚从 3.3.0.GA 更新到 Hibernate 3.6.5.Final,并且在对 XML 映射属性进行 SQL 公式调用时遇到了问题:

<property
    name="endDate"
    type="java.util.Date"
    formula="TIMESTAMPADD(SECOND, (quantity*60*60), transactionDate)" 
/>

我没有更改 *.xml.hbm 中的任何内容,也没有更改数据库设计。以前我的 endDate 计算得很好,现在我得到了MySQLSyntaxErrorException:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'this_.SECOND,(this_.quantity*60*60),this_.transactionDate) as formula0_0_ from t' at line 1

问题非常明显this_.SECOND应该SECOND。在我看来,Hibernate 能够识别TIMESTAMPADD作为一个公式,但不是SECOND作为静态传递的参数,并认为它必须是表中的一列。我不确定如何告诉 hibernate 它应该使用SECOND as is.

我试过了registerFunction and registerKeyword在我的方言上,但没有任何运气,因为这些似乎与 HQL 函数定义相关,而不是公式中使用的本机 SQL。

谁能指出我正确的方向,或者告诉我 Hibernate 在这些版本之间有什么不同以及我如何修复它?


我刚刚升级到 Hibernate 4.1.2,同样的问题又出现了。 [SECOND] 的解决方案不再有效,我必须在我自己的自定义方言中注册关键字。喜欢:

public class ExtendedMySQL5InnoDBDialect extends MySQL5InnoDBDialect {

    public ExtendedMySQL5InnoDBDialect() {
        super();
        //make sure to register it in lowercase as uppercase does not work (took me 4 hours to realize)
        registerKeyword("second");

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新到 3.6.5 后,Hibernate 将属性映射到 SQL 公式失败 的相关文章

  • Spring Rest POST Json RequestBody 不支持内容类型

    当我尝试使用 post 方法发布新对象时 RequestBody 无法识别 contentType Spring 已经配置完毕 POST 可以与其他对象一起使用 但不能与这个特定对象一起使用 org springframework web
  • 如何在 Java 中根据 XSD 1.1 验证 XML?

    在 Java 中根据 XML Schema 1 1 验证 XML 文件的最佳方法是什么 我从中获取了代码tutorial http www ibm com developerworks xml library x javaxmlvalida
  • 如何限制用户键入时 JTextPane 中的字符数 (Java)

    我需要不允许在输入 X 后输入任何字符 我需要在输入 X 个字符后发出蜂鸣声 我知道如何在用户按 Enter 键后执行此操作 但我需要在用户按 Enter 键之前执行此操作 我从 Oracle 站点找到的方法是将 DocumentSizeF
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • JPA 为每个项目选择最新实例

    假设我有一个会议实体 每次会议都有一个与会者和一个会议日期 在我的会议表中 我可能为每个与会者举行多个会议 每个会议都有不同的日期 我需要一个 JPA 查询 该查询将为所有与会者仅选择最新的会议 例如 如果我的桌子看起来像这样 Meetin
  • 如何使用 Connector/C++ 更新 MySQL 中的一行值

    我有一个简单的数据库 想要更新一个 int 值 我最初执行一个查询并返回一个 ResultSet sql ResultSet 对于结果集中的每个条目 我想修改表的一个特定列中的值 然后将其写回到数据库 更新该行中的该条目 根据文档 我不清楚
  • java“类文件包含错误的类”错误

    我正在尝试制作一个控制台应用程序来测试我的网络服务 我成功部署了一个网络服务http localhost 8080 WS myWS http localhost 8080 WS myWS我用 wsimport 制作了代理类 wsimport
  • 嵌套枚举是静态的吗?

    读书时这个问题 https stackoverflow com questions 25011061 why can enum implementations not access private fields in the enum cl
  • JavaPreparedStatementUTF-8字符问题

    我有一份准备好的声明 PreparedStatement st 在我的代码中 我尝试使用 st setString 方法 st setString 1 userName userName 的值为 ak a setString 方法将 ak
  • 如何将自托管 WordPress 和已安装的实时站点插件升级到最新可用版本而不遇到任何麻烦?

    我必须升级正在运行的 WordPress 网站的 WordPress CMS 和一些已安装的插件 并且我想要升级的一些插件之前已被修改以实现某些目标 http easycaptures com fs uploaded 288 9522279
  • java中main的返回类型

    我想知道为什么java中main方法只有void返回类型 public static void main String args 为什么main方法除了void之外没有其他返回类型 Thanks 简短的回答是 因为这就是语言规范 http
  • 在 Java 中查询 XML 的最简单方法

    我有带有 XML 的小字符串 例如 String myxml
  • MAC OS 的 java.awt.Robot 类中出现无头环境错误

    我正在尝试使用 JavaFX 应用程序捕获屏幕截图Robot class 这是我在我的应用程序中使用的代码 Rectangle screenBounds new Rectangle Screen getPrimary getBounds g
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • 将 @RequestLine 与 Feign 一起使用

    我有一个工作 Feign 接口定义为 FeignClient content link service public interface ContentLinkServiceClient RequestMapping method Requ
  • cmd 和 workbench mysql 查询性能差异

    我有两个问题 正如我的标题 哪一个对于对大量数据运行大型查询更有效 我查看了 MySQL 文档 其中解释了工作台的性能https www mysql com products workbench performance https www
  • “完整性约束违规:1062 重复条目” - 但没有重复行

    我正在将应用程序从本机 mysqli 调用转换为 PDO 尝试将行插入具有外键约束的表时遇到错误 Note 这是一个简化的测试用例 不应复制 粘贴到生产环境中 InfoPHP 5 3 MySQL 5 4 首先 这是表格 CREATE TAB
  • 在同一台计算机上设置 JBoss 的多个实例

    我在 JBoss 社区中找到了下一页 http www jboss org community wiki ConfigurePorts http www jboss org community wiki ConfigurePorts 有下一
  • JBoss 5 截断 base64 cookie 字符串的尾部 =

    从 JBoss 4 升级到 JBoss 5 后 我注意到最烦人的回归 它截断 base64 cookie 值的尾部等号 我花了很长时间才明白问题不是我的代码而是 JBoss 的 我用 google 搜索了一下 发现这是一个已知的问题issu
  • 将redis数据移至MySQL的更快方法

    我们拥有庞大的购物和产品交易系统 我们在 MySQL 方面遇到了很多问题 因此经过几次研发后 我们计划使用 Redis 并开始将 Redis 集成到我们的系统中 继之前直接访问数据库之后 现在我们已经移动了Redis系统 用户购物车详情 关

随机推荐