1 Star 0 Fork 0

海风 / zorm-dm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
entity_test.go 3.10 KB
一键复制 编辑 原始数据 按行查看 历史
海风 提交于 2024-04-21 13:43 . 更新: 所有函数适应 pg 库
/*
* @Author: haifengat hubert28@qq.com
* @Date: 2023-06-12 13:35:21
* @LastEditors: haifengat hubert28@qq.com
* @LastEditTime: 2023-06-20 17:01:17
* @FilePath: /zorm-dm/entity_test.go
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
package zd
import (
"fmt"
"testing"
)
type TradingDayType string
func (TradingDayType) GetDataType() string {
return "varchar(8)"
}
type Bar struct {
DateTime string `zorm:"primarykey"` // redis 标识
InstrumentID string `zorm:"primarykey;size:64"`
TradingDay TradingDayType `zorm:"index"`
Open float64
High float64
Low float64
Close float64
Volume int
OpenInterest float64
PreVol int
Ticks int // 此分钟的tick数量 >3 才会被记录和分发
Entity
}
type UserNameType string
func (UserNameType) GetDataType() string {
return "varchar(14)"
}
// char(1) 与自定义类型对应
type StatusType byte
const STst StatusType = '0'
const STnd StatusType = '1'
type Depart struct {
ID string
Name string
Count int
}
type NumberType float64
// 指定小数位数
func (NumberType) GetDataType() string {
return "Number(22,8)"
}
/*
CREATE TABLE "SYSDBA"."USERINFO"
(
"USER_NAME" VARCHAR(14) NOT NULL,
"GENDER" VARCHAR(256) NOT NULL,
"AGE" INT,
"ISACTIVE" BIT,
"PROFIT" NUMBER(22,8),
"STATUS" CHAR(1),
"ID" INT IDENTITY(1, 1) NOT NULL,
"REMARK" VARCHAR(32),
NOT CLUSTER PRIMARY KEY("USER_NAME", "GENDER")) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON COLUMN "SYSDBA"."USERINFO"."GENDER" IS '性别';
CREATE INDEX "USERINFO_USER_NAME" ON "SYSDBA"."USERINFO"("USER_NAME" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;
CREATE INDEX "USERINFO_GENDER" ON "SYSDBA"."USERINFO"("GENDER" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;
*/
type UserInfo struct {
// 主键,列名,非空,索引
UserName UserNameType `zorm:"primarykey;not null;index"`
// 主键,索引,描述
Gender string `zorm:"primarykey;index;comment:性别"`
TradingDay string
Age int
// bool -> BIT
IsActive bool
// Profit NumberType
Profit float64
// char(1)
Status StatusType
// 非空自增
ID int `zorm:"not null;autoincrement"`
// 限制长度
Remark string `zorm:"size:32"`
Entity // 实现 IEntity
}
type Employee struct {
UserInfo
Name string `zorm:"comment:333XX"` // 尝试覆盖,令userInfo.Name 配置失效
EmpleeID string `zorm:"primaryKey"`
}
func (Employee) GetPrimaryKey() []string {
return []string{"Name"}
}
func TestCreateSchema(t *testing.T) {
t.Run("创建模板", func(t *testing.T) {
err := CreateSchema(ctxTest)
fmt.Println(err)
})
}
func TestCreateUserInfo(t *testing.T) {
// err = DropTable[UserInfo](ctxTest)
// fmt.Println(err)
err := CreateSchema(ctxTest)
fmt.Println(err)
err = CreateTable[UserInfo](ctxTest)
fmt.Println(err)
}
// TestEntityCompenent 测试组合 struct
func TestEntityEmployee(t *testing.T) {
err := DropTable[Employee](ctxTest)
if err != nil {
t.Error(err)
}
err = CreateTable[Employee](ctxTest)
if err != nil {
t.Error(err)
}
}
Go
1
https://gitee.com/haifengat/zorm-dm.git
git@gitee.com:haifengat/zorm-dm.git
haifengat
zorm-dm
zorm-dm
v2.1.4

搜索帮助