#GORM
## 事象
以下のように文字列の[[主キー]]を持つテーブルのレコードに対して、`db.First`を実行すると、`HogeId = "hoge"`のレコードはないのに結果が返却される。
```go
type Hoge struct {
HogeId string `gorm:"primaryKey"`
Name string
}
id := "hoge"
db.First(&hoge, id)
```
## 原因
`db.First(&hoge, id)`の書き方は[[主キー]]が数値の場合でしか有効でないから。
## 対策
普通に[[プレースホルダー]]を使って書く。
```go
id := "hoge"
db.First(&hoge, "hoge_id = ?", id)
```
## 参考
- [レコードの取得 \| GORM \- The fantastic ORM library for Golang, aims to be developer friendly\.](https://gorm.io/ja_JP/docs/query.html#%E3%83%97%E3%83%A9%E3%82%A4%E3%83%9E%E3%83%AA%E3%82%AD%E3%83%BC%E3%81%A7%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B)