GoooQo v0.2.2 已经发布,OQM 技术的 Golang 实现


GoooQo v0.2.2 已经发布,OQM 技术的 Golang 实现

此版本更新内容包括:

版本

  • core/v0.2.2
  • rdb/v0.2.2
  • web/v0.2.2

特性

rdb

  • 支持字段映射实体关系查询: many-to-many/one-to-many/many-to-one/one-to-one
  • 对于LIKE条件忽略空字符串
  • 对于后缀In/NotIn忽略空数组
  • 移除后缀Not

ER 查询示例

t_menu有一个列parent_id,它将id列本身引用为外键。parent_id列用于定义菜单项之间的层次父子关系。菜单通过通用RBAC模型作为系统资源分配给用户。那么菜单到用户的实体路径即为:menu,perm,role,user,用于生成嵌套查询语句。

import . "github.com/doytowin/goooqo/core"

type MenuEntity struct {
	IntId
	ParentId *int`json:"parentId,omitempty"`
	Name *string `json:"name,omitempty"`
}

type MenuQuery struct {
	PageQuery
	Id *int

	// many-to-one:
	// 查询特定父菜单的子菜单:
	// parent_id IN (SELECT id FROM t_menu WHERE [conditions])
	Parent *MenuQuery `entitypath:"menu" localField:"ParentId"`

	// one-to-many:
	// 查询特定子菜单的父菜单:
	// id IN (SELECT parent_id FROM t_menu WHERE [conditions])
	Children *MenuQuery `entitypath:"menu" foreignField:"ParentId"`

	/**
	many-to-many:
	查询特定用户可以访问的菜单:
	id IN (
		SELECT menu_id FROM a_perm_and_menu WHERE perm_id IN (
			SELECT perm_id FROM a_role_and_perm WHERE role_id IN (
				SELECT role_id FROM a_user_and_role WHERE user_id IN (
					SELECT id FROM t_user WHERE [conditions]
				)
			)
		)
	)*/
	User *UserQuery `entitypath:"menu,perm,role,user"`
}
 

更多用法请查看文档:https://goooqo.docs.doyto.win/zh/query-mapping/query-object/er-query-field。

详情查看:https://gitee.com/doyto/goooqo/releases/v0.2.2


相關推薦

2024-09-21

GoooQo v0.2.0 已经发布,OQM 技术的 Golang 实现 此版本更新内容包括: 文档上线:https://goooqo.docs.doyto.win/v/zh 特性: 支持子查询字段映射: Tag: subquery Tag: select/from 从字段名称解析 ANY ALL 子查询字段定义示例: ty

2022-10-12

凹语言™(凹读音 “Wa”)是 针对 WASM 平台设计的的通用编程语言,支持 Linux、macOS 和 Windows 等主流操作系统和 Chrome 等浏览器环境,同时也支持作为独立 Shell 脚本和被嵌入脚本模式执行。 主页: https://wa-lang.org   -

2022-03-30

根据外媒 报道和各大企业的反馈,甲骨文公司近日已经开始将 Java 纳入其软件许可审查中,目的是找出那些处于不合规边缘或已经违规的客户,甲骨文此举是为了推动企业付费,这也是为了提升付费率而惯常采用的操作。 甲

2023-08-24

Fixed 修复特定字符可能会破坏文件路径的问题 Enhancements 为SFTP新增一些集成测试 支持软链接本身的同步 实现通过文件查询接口获取链接信息 新增go1.21支持 移除go1.19支持 新增symlink动作 为FileInfo结构新增LinkTo字

2024-08-09

生成器:仙童,可以生成带弹性登录模块的系统,现在,已经发布了视频,解释了其代码生成物的登录系统。视频请见:https://www.bilibili.com/video/BV11maXeYE12/ 仙童代码生成物中的登录系统主要包含了LoginController,IndexController,LoginSer

2023-08-25

8 月 26 日「源创会」北京站,聊聊 AI 大模型与底层技术 >>> carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,支持链式调用、农历和 gorm、xorm 等主流 orm 目前已被 awesome-go-cn 收录,如果您觉得不错,请

2024-08-03

,一个前端,一个后端 将前端代码生成物解压 确认您已经安装好和您选择的Nodejs版本相容的前端Nodejs环境 使用npm install -registry=https://registry.npm.taobao.org 安装Nodejs依赖包 如果您使用的是Nodejs 21和Nodejs18,请运行命令:ex

2022-08-09

2022年8月2日,Go 1.19 正式发布,并添加了对 LoongArch 架构的原生支持。至此,LoongArch 指令系统在 Golang 社区成为与 X86、ARM 等指令系统并列支持的指令系统之一。 据龙芯官方介绍,2021年5月龙芯中科向 Golang 社区提交了 LoongArch

2024-10-06

用的数据库是 TKCourseManagement 和CivMariaSample数据库,此前已经在多个视频演示中使用,大家应该比较熟悉了。 golang 通用代码生成器仙童的项目地址为:https://gitee.com/jerryshensjf/Fairchild 其二进制发布包下载地址为:https://gitee.com/je

2024-04-11

carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,支持链式调用、农历和 gorm、xorm 等主流 orm。 目前已被 awesome-go-cn 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbo

2022-02-18

Go 开发团队技术 leader Russ Cox (rsc) 发文介绍了关于 Go 的版本控制历史。起因是每隔一段时间,总有人用下面这段代码表示 Go 的首次 commit 是在 1972 年: % git log --reverse --stat commit 7d7c6a97f815e9279d08cfaea7d5efb5e90695a8 Author: Brian Kernig

2023-07-18

大家好啊,GoFrame框架今天发布了v2.5.0正式版本啦!👏👏👏👏 本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了gf gen ctrl命令,以规范化定义、开发API接口,增加控制器、SDK的代码生成提高开

2022-02-24

ust。现在马斯克对 Rust 如此大力支持,看来他们团队内部已经在深度使用 Rust?

2023-09-01

e (90ms) frame(15ms) frame(15ms) frame(15ms) avg = 33.75ms 简单代入下已经证明了,决定 websocket 差距的是 frame 的处理过程,无论是tps还是内存占用 quickws 在实战中也会证明这个点。所以没有必须也不需要在 upgrade 下功夫,常规优化就够了。