
gorm
文章平均质量分 64
tekin
激情,创新,进取!
展开
-
GORM 软删除 使用详解
在gorm这个ORM框架中,默认情况下,只要我们的表中包含了字段 deleted_at , 模型中包含的字段类型为那么这个情况下我们的模型就拥有了软删除功能。当调用Delete时,GORM并不会从数据库中删除该记录,而是将该记录的DeleteAt设置为当前时间,而后的一般查询方法将无法查找到此条记录。如果你并不想嵌套gorm.Model,你也可以像下方例子那样开启软删除特性:Deleted。原创 2024-07-25 21:55:24 · 619 阅读 · 0 评论 -
gorm ORM框架Delete方法使用注意事项 删除回写,软删除,自定义条件删除,删除钩子函数等使用
gorm框架中的Delete方法用于删除数据,他的作用是 删除与给定条件匹配的value。如果value包含主键,则将其包含在删除条件中。如果value包含deleted_at字段,则Delete会执行软删除,如果deleted_at的值为空,则gorm通过将置为当前时间来实现。注意事项1. Delete方法中第一个参数value他是一个要删除的对象,这个对象需要使用指针类型,gorm会将删除的数据赋值到这个对象上;2. 如果这个对象包含主键,他会自动将主键当做删除条件;3. 如果这个对象包含d原创 2024-07-21 22:46:52 · 832 阅读 · 0 评论 -
gorm Raw 和 Table/Model构建的*gorm.DB对象的区别
当我们需要执行多个链式查询条件的时候,我们可以先通过 Table/Model来构建 *gorm.DB对象,然后在链式附加其他查询条件;如果我们不需要其他查询条件,就可以使用Raw原生查询方法来执行。注意在使用Raw原生查询方法是,如果是直接拼接SQL,需要注意使用Quote转码特殊字符, 可以使用*gorm.DB查询条件里面的Statement.Quote()方法来对查询参数进行转码,即 tx.Statement.Quote(xxx)原创 2024-07-17 16:16:15 · 583 阅读 · 0 评论 -
golang无限层级菜单,子菜单Children 数据递归处理和gorm数据获取示例
/ model.SysMenu 菜单表gorm实体模型定义 示例comment:父菜单ID" json:"pid"` // 父菜单IDnot null;comment:菜单名称" json:"name"` // 菜单名称// 这个是我们返回前端的带层级的菜单对象model.SysMenu // 继承model.SysMenu实体模型。原创 2024-07-16 10:16:48 · 608 阅读 · 0 评论 -
gorm多表联合查询 Joins方法 LEFT JOIN , RIGHT JOIN , INNER JOIN, FULL JOIN 使用总结
当然我们这里要说的使用方式是官方示例里面没有的,有的我们就不重复废话了。从上面的方法定义我们可以看到,这个Joins的第一个参数query string 他就是一个查询字符串, 第二个参数是可变参数, 从这个参数定义就可以看出,这里的第一个参数query 就是我们需要进行多表链接的查询参数,这里的查询参数可以是任何的SQL支持的链接查询语句,如LEFT JOIN, RIGHT JOIN , INNER JOIN, FULL JOIN等。原创 2024-07-15 22:37:47 · 1413 阅读 · 0 评论 -
gorm数据库define a valid foreign key for relations or implement the Valuer/Scanner interface异常解决方法
gorm ORM框架在对我们自定义的结构体进行Sacn数据扫描的时候异常 [error] invalid field found for struct XXX's field Children: define a valid foreign key for relations or implement the Valuer/Scanner interface。原创 2024-07-15 15:38:36 · 1111 阅读 · 0 评论 -
gorm中使用事务的2种方法 Transaction和Begin的使用详解
在gorm这个orm框架中,我们可以通过 .Transaction方法开启一个自动事务,可以通过.Begin方法开启一个手动事务。所谓的自动事务就是在整个事务的执行过程中如果用到错误他会自动帮你回滚数据, 而手动事务就需要你自己手动回滚数据。原创 2024-07-13 20:02:15 · 2144 阅读 · 2 评论 -
gorm获取最后插入的数据ID的方法 LastInsertId
这里的 entity.SysUser 就是你的数据库表的实体对象定义, 在使用Create方法或者Save方法插入数据后gorm会将当前插入的数据对应的数据库中的记录都通过反射写入到user这个对象上面,我们要获取最后插入的ID或者当前插入数据的其他信息都可以通过这个对象获取, 这个还是很方便的,比使用LastInsertId 更加精简!原创 2024-07-13 19:14:33 · 662 阅读 · 0 评论 -
gorm只查询某一些字段字段的方法Select, 和只查询某一字段方法 Pluck
gorm中默认是查询所有字段的, 如果我们只需要获取某些字段的值,可以通过使用 Select方法来指定要查询的字段来实现, 也可以通过定义一个需要字段的结构体来实现;而如果我们只需要查询某一个字段的值就可以使用 Pluck方法来获取(这里的pluck就是采摘的意思,表示只摘取某一个字段的值)原创 2024-07-13 18:58:57 · 2097 阅读 · 0 评论