![]() |
1
3
对hql使用自定义方言。不要使用,而是创建自己的名为concat的函数。然后,在SQL Server方言中将此添加到构造函数中:
您不必更改Oracle方言,因为Oracle已经有了concat函数,所以它只是传递而已,但对于其他函数,您可能需要在两者中注册新函数。 对于SQL查询,因为无论如何都是动态构建的,所以可以使用基类方法,例如super.addbitandclause(leftside,rightside)。 您甚至可以动态地访问方言,尽管Hibernate没有通过设置接口使其变得容易:
|
![]() |
2
1
我建议将HQL查询从代码移动到外部.hbm文件,并在切换数据库之前使用命名查询。HQL查询不应该像您已经说过的那样是一个问题。本地查询是一个问题,您必须找到其他DBMS的等效查询。但是,通过将查询放入外部文件,您可以配置sessionFactory使用特定于数据库的.hbm文件,并且不需要更改仅依赖于命名查询(可以是本机查询或HQL)的代码。 要获取命名查询,可以执行以下操作:
|
![]() |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
![]() |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
![]() |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
![]() |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
![]() |
Anar · Oracle SQL用户定义函数 2 年前 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |