小编Joe*_*ner的帖子

Hibernate setMaxResults()不适用于Sybase数据库查询

执行具有有限结果的简单Hibernate查询的以下两种方法之一在Sybase中不起作用.它们都会导致SybSQLException:'@ p0'附近的语法不正确.

Query q = session.createQuery( "from Record" );
q.setMaxResults( 50 );
q.list();
Run Code Online (Sandbox Code Playgroud)

要么

Criteria criteria = session.createCriteria( Record.class );
criteria.setMaxResults( 50 );
criteria.list();
Run Code Online (Sandbox Code Playgroud)

看来在这两种情况下生成的实际SQL看起来像......

select top ? record_id, etc...
Run Code Online (Sandbox Code Playgroud)

并且Sybase正在讨论?,Hibernate没有填充值50(这是我的猜测).我到处搜索,而其他人遇到了类似的错误,这不是因为试图限制结果.

我可以执行一个直接的SQL语句,例如'从Record中选择前50个',它运行得很好,所以我知道我的Sybase版本支持语法.

我正在使用Hibernate 3.2和Sybase ASE 15.0.2

sql hibernate hql sybase-ase

2
推荐指数
1
解决办法
3956
查看次数

标签 统计

hibernate ×1

hql ×1

sql ×1

sybase-ase ×1