java - hsqldb 中的 mysql 方言

标签 java mysql hibernate hsqldb

我正在使用 hibernate 来管理应用程序中的数据库操作和 MySQL - 使用 org.hibernate.dialect.MySQLInnoDBDialect 作为 hibernate 方言。但出于测试目的,我使用 HSQLDB 1.8.0.10。

我对这样的查询有问题(在 mysql 上运行良好,但在 hsql 上运行良好):

SELECT DISTINCT(id) FROM table ORDER BY name;

我知道问题出在 unique 和 order by ( http://weblogs.sqlteam.com/jeffs/archive/2007/12/13/select-distinct-order-by-error.aspx ) 上,解决方案可能是这样的:

SELECT DISTINCT(id) FROM table GROUP BY id ORDER BY MAX(name);

但我的问题是,是否有可能在 HSQLDB 中使用 MySQL 方言而不必使用此解决方案?

最佳答案

HSQLDB正确实现了SQL标准,不允许有歧义的查询。无法改变其行为。

最好修改您的 MySQL 查询以使其符合标准。这使您可以更轻松地将应用程序移植到另一个数据库。

关于java - hsqldb 中的 mysql 方言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16025507/

相关文章:

java - android java mCurrentLocation.getLongitude() 尝试放入变量中进行获取

用于生成逗号分隔值和总和的 Java 代码

mysql - MySQL Locked Tables 会影响相关的 View 吗?

mysql - 选择所有字段包含以逗号分隔的字符串

hibernate - Grails Hibernate批注

java - Hibernate:保存一侧具有唯一约束的链接表

Java jsoup链接选择

java - 如何检查字符串是否等于有效字符之一? (棋盘)

php 从 mysql 数据库编码 JSON,但显示 "???"数据

java - 使用 JPA 关系查询时非法尝试取消引用集合