Как установить конкретную схему базы данных с Gorm?

В принципе, == сравнивает, если два объекта имеют одну и ту же ссылку в куче, поэтому, если две ссылки не связаны с одним и тем же объектом, это сравнение будет ложным.

equals() - метод унаследованный от класса Object. Этот метод по умолчанию сравнивает, если два объекта имеют одинаковое рефери. Это означает:

object1.equals(object2) & lt; => object1 == object2

Однако, если вы хотите установить равенство между двумя объектами того же класса, вы должны переопределить этот метод. Также очень важно переопределить метод hashCode(), если вы переопределили equals().

Реализация hashCode() при установлении равенства является частью Контракта объектов Java. Если вы работаете с коллекциями, а вы не реализовали hashCode(), могут возникнуть Strange Bad Things:

HashMap<Cat, String> cats = new HashMap<>();
Cat cat = new Cat("molly");
cats.put(cat, "This is a cool cat");
System.out.println(cats.get(new Cat("molly"));

null будет напечатано после выполнения предыдущего кода, если вы еще не реализовали hashCode().

0
задан Flimzy 27 January 2019 в 23:23
поделиться

1 ответ

Вот базовый пример практически всего, что вам нужно, чтобы вставить некоторые простые данные
в базу данных PostgreSQL через gorm .

main.go

package main

import (
    "log"
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres" // Don't forget the dialect
)

// Simple Example model
type FuelType struct {
    gorm.Model // Gorm default columns (id, created_at, updated_at, deleted_at)
    Name string
}

func main() {
    // Database initialization
    db, err := gorm.Open(
        "postgres",
        "host=localhost port=5432 user=postgres dbname=foo password=bar sslmode=disable",
    )
    if err != nil {
        log.Fatalln("Can't connect to the db: ", err)
    }
    defer func() {
        if err := db.Close(); err != nil {
            log.Fatalln("Can't close the db connection: ", err)
        }
    }()

    // Migration
    db.AutoMigrate(&FuelType{})

    // Insertion
    fuelType := FuelType{Name: "100 GFuel"}
    db.Create(&fuelType)
}
0
ответ дан Mihailo 27 January 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: