Documentation
¶
Index ¶
- Constants
- func CloseAllConnections() error
- func EagerLoadManyToMany[S any, T any](manager *DatabaseManager, sources *[]S, relationFieldName string) error
- func EagerLoadManyToOne[S any, T any](manager *DatabaseManager, sources *[]S, relationFieldName string) error
- func FindAll[T any](manager *DatabaseManager, entities *[]T) error
- func FindByEntity(manager *DatabaseManager, entities interface{}) error
- func FindByQuery(manager *DatabaseManager, selectQuery model.SelectQuery) error
- func SaveManyToMany[S any, T any, J any](manager *DatabaseManager, source *S, relationFieldName string) error
- type Connector
- type DatabaseConfig
- type DatabaseManager
- func (manager *DatabaseManager) AutoEagerLoadM2MRelations(entitiesPtr interface{}) error
- func (manager *DatabaseManager) AutoEagerLoadRelations(entitiesPtr interface{}) error
- func (manager *DatabaseManager) GenerateUuidV4() string
- func (manager *DatabaseManager) Insert(query string, args ...interface{}) (sql.Result, error)
- func (manager *DatabaseManager) QueryBuilder() *query_builder.QueryBuilder
- func (manager *DatabaseManager) SyncMigrations() error
- func (manager *DatabaseManager) TableExists(tableName string) (bool, error)
- type Hydrator
- type Migration
- type RelationHandler
Constants ¶
const ( DefaultPage = 1 DefaultLimit = 10 )
Variables ¶
This section is empty.
Functions ¶
func CloseAllConnections ¶
func CloseAllConnections() error
func EagerLoadManyToMany ¶ added in v0.1.5
func EagerLoadManyToMany[S any, T any](manager *DatabaseManager, sources *[]S, relationFieldName string) error
EagerLoadManyToMany loads many-to-many relations for a slice of source entities. S is the source entity type, T is the target entity type.
func EagerLoadManyToOne ¶ added in v0.1.5
func EagerLoadManyToOne[S any, T any](manager *DatabaseManager, sources *[]S, relationFieldName string) error
EagerLoadManyToOne loads many-to-one relations for a slice of source entities. S is the source entity type, T is the target entity type being pointed to.
func FindAll ¶ added in v0.1.4
func FindAll[T any](manager *DatabaseManager, entities *[]T) error
func FindByEntity ¶ added in v0.1.4
func FindByEntity(manager *DatabaseManager, entities interface{}) error
func FindByQuery ¶ added in v0.1.4
func FindByQuery(manager *DatabaseManager, selectQuery model.SelectQuery) error
func SaveManyToMany ¶ added in v0.1.5
func SaveManyToMany[S any, T any, J any](manager *DatabaseManager, source *S, relationFieldName string) error
SaveManyToMany synchronization logic. J represents the junction entity (e.g. UserGroupMember) S represents the source entity (e.g. User) T represents the target entity (e.g. Group)
Types ¶
type Connector ¶
func NewConnector ¶
func NewConnector(cfg DatabaseConfig) (*Connector, error)
type DatabaseConfig ¶
func NewDatabaseConfig ¶
func NewDatabaseConfig(dbName, directoryPath string) DatabaseConfig
type DatabaseManager ¶
func NewDatabaseManager ¶
func NewDatabaseManager(dbName string, dbDir string, migrationFolders []string) (*DatabaseManager, error)
func (*DatabaseManager) AutoEagerLoadM2MRelations ¶ added in v0.1.5
func (manager *DatabaseManager) AutoEagerLoadM2MRelations(entitiesPtr interface{}) error
AutoEagerLoadM2MRelations dynamically inspects a slice of entities and eager loads any m2m relations.
func (*DatabaseManager) AutoEagerLoadRelations ¶ added in v0.1.5
func (manager *DatabaseManager) AutoEagerLoadRelations(entitiesPtr interface{}) error
AutoEagerLoadRelations dynamically inspects a slice of entities and eager loads any m2o relations. This is slower than strictly typed EagerLoadManyToOne because it relies entirely on reflection mapping, but it is extremely useful for generic REST handlers where compile-time types T and S are unknown.
func (*DatabaseManager) GenerateUuidV4 ¶
func (manager *DatabaseManager) GenerateUuidV4() string
func (*DatabaseManager) Insert ¶
func (manager *DatabaseManager) Insert(query string, args ...interface{}) (sql.Result, error)
func (*DatabaseManager) QueryBuilder ¶
func (manager *DatabaseManager) QueryBuilder() *query_builder.QueryBuilder
func (*DatabaseManager) SyncMigrations ¶
func (manager *DatabaseManager) SyncMigrations() error
func (*DatabaseManager) TableExists ¶
func (manager *DatabaseManager) TableExists(tableName string) (bool, error)
type RelationHandler ¶ added in v0.1.5
type RelationHandler[S any, T any] interface { Load(manager *DatabaseManager, sources *[]S) error Save(manager *DatabaseManager, source *S) error Delete(manager *DatabaseManager, source *S) error }
RelationHandler defines generic operations for managing entity relationships (e.g., Many-to-Many). S represents the source entity type, and T represents the target entity type.