zoukankan      html  css  js  c++  java
  • GORM 知识点

    资料 网址
    GORM官方文档 http://gorm.io/zh_CN/docs/index.html
    1. 生成的 SQL 语句会排除没有值或值为 零值 的字段。
    2. 注意 所有字段的零值, 比如 0, '', false 或者其它 零值,都不会保存到数据库内,但会使用他们的默认值。 如果你想避免这种情况,可以考虑使用指针或实现 Scanner/Valuer 接口
    3. 当通过结构体进行查询时,GORM将会只通过非零值字段查询,这意味着如果你的字段值为0,'', false 或者其他 零值时,将不会被用于构建查询条件;你可以使用指针或实现 Scanner/Valuer 接口来避免这个问题.
    4. Count 必须是链式查询的最后一个操作 ,因为它会覆盖前面的 SELECT,但如果里面使用了 count 时不会覆盖
    5. Save会更新所有字段,即使你没有赋值;如果你只希望更新指定字段,可以使用Update或者Updates;
    6. 无 Hooks 更新:上面的更新操作会自动运行 model 的 BeforeUpdate, AfterUpdate 方法,更新 UpdatedAt 时间戳, 在更新时保存其 Associations, 如果你不想调用这些方法,你可以使用 UpdateColumn, UpdateColumns
    7. 批量更新时 Hooks 不会运行
    8. 警告:删除记录时,请确保主键字段有值,GORM 会通过主键去删除记录,如果主键为空,GORM 会删除该 model 的所有记录。
    9. 软删除:如果一个 model 有 DeletedAt 字段,他将自动获得软删除的功能! 当调用 Delete 方法时, 记录不会真正的从数据库中被删除, 只会将DeletedAt 字段的值会被设置为当前时间
    10. 想要创建包含多个整型的复合主键,你需要为这些整型字段关闭 auto_increment
  • 相关阅读:
    mysql 5.7修改密码
    使用zfs进行pg的pitr恢复测试
    什么是构造函数?它和普通函数的区别?
    匿名函数和普通函数的区别
    http缓存机制
    全局变量和局部变量
    什么是web语义化?
    ajax状态值和状态码
    如何理解MVVM?
    如果理解&&运算符和各类数值的布尔值
  • 原文地址:https://www.cnblogs.com/cag2050/p/13449898.html
Copyright © 2011-2022 走看看