1
5
您可以在会话级别修改优化器模式:
要么就在查询之前,然后将其恢复为默认值(
|
2
6
我可以通过在条件中添加项目列表来输入Oracle提示。
|
3
5
我有另一个通用解决方案,它适用于每个条件查询:
在查询代码中使用:
编写一个拦截器以更改为SQL文本(此拦截器使用commons.lang3.StringUtils):
上面是针对Oracle的,但是对于每个DBMS都应该很容易调整。
必须注册拦截器。在春天,这是在
或(从Hibernate 3.3文档复制):
|
4
1
问题是提示语法不是注释,它看起来有点像注释。它真的必须介于
除此之外,没有银弹。
但是,不管怎样,如果您想使用Oracle的提示语法,您都需要沿着本机SQL路径走下去。 你还能做什么?我还没有调整休眠的经验。有一次在这样的任务下,查询从一大堆表中获取行,以实例化具有许多子类型的对象。每个子类型都是一个单独的表。由Hibernate生成的查询有许多外部联接,这使检查优化器感到困惑。把那个怪物分解成几个集中的查询(每个子类型一个),只使用内部连接,从而减少了检索时间的百分之二。 这可能对您没有任何立即的用处。但其原理是,看看Hibernate查询,看看它是否可以以一种不同的、更有效的方式实现。 |
Nashh · 根据标准将向量中的每个值与所有其他值进行比较 6 年前 |
5haun0 · 为一行选择了多个条件的高级筛选器 6 年前 |
YvetteLee · ms access表单条件帮助错误 7 年前 |
burger · 搜索值更改的范围,如果找到,复制整行 8 年前 |
Adeel Ansari · 任何想法,如何避免这里的if语句 8 年前 |