0

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

我对这样的查询有疑问(在 mysql 上运行良好而不是在 hsql 上):

SELECT DISTINCT(id) FROM table ORDER BY name;

我知道问题出在 distinct 和 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 方言而不必使用此解决方案?

4

1 回答 1

2

HSQLDB 正确地实现了 SQL 标准,不允许歧义查询。不可能改变它的行为。

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

于 2013-04-16T18:09:54.640 回答