hibernate 根据方言生成sql
建表语句生成
SchemaManagementToolCoordinator#performDatabaseAction
这个方法会做一些初始化动作,如启动时初始化表修改表
Table对象中有sqlCreateString方法,然而生成建表语句使用得是StandardTableExporter#getSqlCreateStrings
解析列属性
AnnotationBinder#processElementAnnotations
这个静态方法用于解析class类中得字段到Column对象
列类型
BasicTypeRegistry注册了java类型用于通过java类型获取sql类型,
并由具体dialect#getTypeName根据sql类型id获取sql类型string
方言选择
StandardDialectResolver#resolveDialect()
用于探测当前系统方言,其中入参是接口DialectResolutionInfo主要包含数据库名、主版本、小版本