我发现创建的表遵循 collation_database / collation_server MySQL中的变量。
collation_database
collation_server
有一段时间我很困惑为什么“_”和“o”的解释方式相同,但当我意识到排序是问题所在时,我希望Ormlite使用正确的排序创建表。但是,我找不到任何方法来使用createtable方法和定义排序规则。
我是错过了什么,还是必须手动完成 CreateTable 调用完成后,运行一个自定义SQL,在其中修改表,如:
CreateTable
将table转换为字符集latin1 collate latin1_-Swedish_-ci;
或者有没有一种方法可以在Ormlite中实现这一点?
Ormlite不支持使用自定义排序规则本身创建表,但可以使用 Pre/Post Custom SQL Hooks 要在使用以下属性创建表之前和之后执行自定义SQL,请执行以下操作:
[PreCreateTable(runSqlBeforeTableCreated)] [PostCreateTable(runSqlAfterTableCreated)] [PreDropTable(runSqlBeforeTableDropped)] [PostDropTable(runSqlAfterTableDropped)] public class Table {}