This commit is contained in:
Hily Jiang 2015-05-19 01:48:31 +00:00
commit 7854526c2b
3 changed files with 28 additions and 0 deletions

View File

@ -575,6 +575,13 @@ func (engine *Engine) SetExpr(column string, expression string) *Session {
return session.SetExpr(column, expression)
}
// Method Options specify the query option
func (engine *Engine) Options(options ...string) *Session {
session := engine.NewSession()
session.IsAutoClose = true
return session.Options(options...)
}
// Temporarily change the Get, Find, Update's table
func (engine *Engine) Table(tableNameOrBean interface{}) *Session {
session := engine.NewSession()

View File

@ -172,6 +172,12 @@ func (session *Session) SetExpr(column string, expression string) *Session {
return session
}
// Method Options specify the query option
func (session *Session) Options(options ...string) *Session {
session.Statement.Options = options
return session
}
// Method Cols provides some columns to special
func (session *Session) Cols(columns ...string) *Session {
session.Statement.Cols(columns...)

View File

@ -73,6 +73,7 @@ type Statement struct {
incrColumns map[string]incrParam
decrColumns map[string]decrParam
exprColumns map[string]exprParam
Options []string
}
// init
@ -1312,6 +1313,20 @@ func (statement *Statement) genSelectSql(columnStr string) (a string) {
}
}
if len(statement.Options) > 0 {
switch statement.Engine.dialect.DBType() {
case core.MYSQL:
for _, option := range statement.Options {
switch option {
case "select:for-update":
a += " FOR UPDATE"
case "select:lock-in-share-mode":
a += " LOCK IN SHARE MODE"
}
}
}
}
return
}