有些数据库有varchar2类型,有些数据库有varchar,有些数据有number类型。
而Hibernate可以支持几乎所有数据库,这就要求Hibernate针对这些差别生成不同的SQL语句。
所以Hibernate需要程序员告诉它,到底底层用的是哪种数据库。
1) 先能知道是不是mysqlselect row_number() over() from tab--->oracle/db2都可以返回结果的,mysql不可以
2) oracle/db2
run sql: select * from sysibm/sysdummy1---〉结果返回,必定为db2,否则为oracle
数据库方言自动选择这个很难确定,只有碰到特定的方法的时候才能知道用那个方言下的方法,必须具体问题才能具体分析。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)