2016-06-19 22:22:50 -07:00
{ { - $tableNameSingular : = . Table . Name | singular | titleCase - } }
{ { - $varNameSingular : = . Table . Name | singular | camelCase - } }
2016-06-26 23:56:05 -07:00
{ { - $colDefs : = sqlColDefinitions . Table . Columns . Table . PKey . Columns - } }
{ { - $pkNames : = $colDefs.Names | stringMap . StringFuncs . camelCase - } }
2016-08-21 16:28:47 +10:00
{ { - $pkArgs : = joinSlices " " $pkNames $colDefs.Types | join ", " - } }
2016-09-15 14:20:35 +10:00
// Find { { $tableNameSingular } } G retrieves a single record by ID.
2016-09-01 11:16:21 +10:00
func Find { { $tableNameSingular } } G( { { $pkArgs } } , selectCols ...string) (* { { $tableNameSingular } } , error) {
2016-09-14 18:08:30 +10:00
return Find { { $tableNameSingular } } (boil.GetDB(), { { $pkNames | join ", " } } , selectCols...)
2016-04-24 15:33:05 +10:00
}
2016-09-15 14:20:35 +10:00
// Find { { $tableNameSingular } } GP retrieves a single record by ID, and panics on error.
2016-09-01 11:16:21 +10:00
func Find { { $tableNameSingular } } GP( { { $pkArgs } } , selectCols ...string) * { { $tableNameSingular } } {
2016-09-14 18:08:30 +10:00
retobj, err := Find { { $tableNameSingular } } (boil.GetDB(), { { $pkNames | join ", " } } , selectCols...)
if err != nil {
panic(boil.WrapErr(err))
}
2016-07-16 21:22:57 +10:00
2016-09-14 18:08:30 +10:00
return retobj
2016-07-16 21:22:57 +10:00
}
2016-09-15 14:20:35 +10:00
// Find { { $tableNameSingular } } retrieves a single record by ID with an executor.
2016-08-02 19:56:55 +10:00
// If selectCols is empty Find will return all columns.
2016-09-01 11:16:21 +10:00
func Find { { $tableNameSingular } } (exec boil.Executor, { { $pkArgs } } , selectCols ...string) (* { { $tableNameSingular } } , error) {
2016-09-14 18:08:30 +10:00
{ { $varNameSingular } } Obj := & { { $tableNameSingular } } { }
sel := "*"
if len(selectCols) > 0 {
sel = strings.Join(strmangle.IdentQuoteSlice(dialect.LQ, dialect.RQ, selectCols), ",")
}
query := fmt.Sprintf(
"select %s from { { . Table . Name | . SchemaTable } } where { { if . Dialect . IndexPlaceholders } } { { whereClause . LQ . RQ 1 . Table . PKey . Columns } } { { else } } { { whereClause . LQ . RQ 0 . Table . PKey . Columns } } { { end } } ", sel,
)
2016-09-14 20:59:55 -07:00
q := queries.Raw(exec, query, { { $pkNames | join ", " } } )
2016-09-14 18:08:30 +10:00
err := q.Bind( { { $varNameSingular } } Obj)
if err != nil {
if errors.Cause(err) == sql.ErrNoRows {
return nil, sql.ErrNoRows
}
return nil, errors.Wrap(err, " { { . PkgName } } : unable to select from { { . Table . Name } } ")
}
return { { $varNameSingular } } Obj, nil
2016-02-29 21:45:28 +10:00
}
2016-07-16 21:22:57 +10:00
2016-09-15 14:20:35 +10:00
// Find { { $tableNameSingular } } P retrieves a single record by ID with an executor, and panics on error.
2016-09-01 11:16:21 +10:00
func Find { { $tableNameSingular } } P(exec boil.Executor, { { $pkArgs } } , selectCols ...string) * { { $tableNameSingular } } {
2016-09-14 18:08:30 +10:00
retobj, err := Find { { $tableNameSingular } } (exec, { { $pkNames | join ", " } } , selectCols...)
if err != nil {
panic(boil.WrapErr(err))
}
2016-07-16 21:22:57 +10:00
2016-09-14 18:08:30 +10:00
return retobj
2016-07-16 21:22:57 +10:00
}