代码之家  ›  专栏  ›  技术社区  ›  Ted

服务堆栈.ormlite。CreateTable方法缺少定义排序规则的选项?

  •  1
  • Ted  · 技术社区  · 6 年前

    我发现创建的表遵循 collation_database / collation_server MySQL中的变量。

    有一段时间我很困惑为什么“_”和“o”的解释方式相同,但当我意识到排序是问题所在时,我希望Ormlite使用正确的排序创建表。但是,我找不到任何方法来使用createtable方法和定义排序规则。

    我是错过了什么,还是必须手动完成 CreateTable 调用完成后,运行一个自定义SQL,在其中修改表,如:

    将table转换为字符集latin1 collate latin1_-Swedish_-ci;

    或者有没有一种方法可以在Ormlite中实现这一点?

    1 回复  |  直到 6 年前
        1
  •  2
  •   mythz    6 年前

    Ormlite不支持使用自定义排序规则本身创建表,但可以使用 Pre/Post Custom SQL Hooks 要在使用以下属性创建表之前和之后执行自定义SQL,请执行以下操作:

    [PreCreateTable(runSqlBeforeTableCreated)]
    [PostCreateTable(runSqlAfterTableCreated)]
    [PreDropTable(runSqlBeforeTableDropped)]
    [PostDropTable(runSqlAfterTableDropped)]
    public class Table {}