1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gormとタグの指定

Last updated at Posted at 2021-07-14

概要

Go言語にて、gormを利用してみました。
構造体を利用してORマッピングを行うことができます。

gormでのモデルの宣言は以下。

import (
   "gorm.io/gorm"
)

type User struct {
   gorm.Model
   Name string
}

gorm.Modelをフィールドに持つことで、自動的に
created_at,updated_at,deleted_at,idフィールドを付与してくれます。この場合、主キーは自動的にidになります。

タグでの指定

データベースの構造に対応して、各フィールドの設定を変更したい場合、タグを利用します。

type User struct {
	gorm.Model
	ID           int      `gorm:"column:_id"`
	Name        string    `gorm:"primaryKey column:user_name"`
}

上記のようにタグで指定してあげれば、主キーはNameに設定され、db内ではuser_nameフィールドとして保存されます。

えばAUTO_INCREMENTで付与されたフィールドの値をIDとして利用する場合、

u := &User{
   Name: "user"
}
result := db.Create(u)
print(u.ID) // AUTO_INCREMENTされた値

u.IDにdb側でレコード作成時に付与された値が格納されますが、
IDにprimarykeyの指定を忘れると、構造体のデフォルト値の0が帰ってきてしまうので注意が必要です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?