Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ToString ¶
func ToString(propagation Propagation) string
Types ¶
type Propagation ¶
type Propagation int
事务传播行为
const ( PROPAGATION_REQUIRED Propagation = iota //默认,表示如果当前事务存在,则支持当前事务。否则,会启动一个新的事务。have tx ? join : new tx() PROPAGATION_SUPPORTS //表示如果当前事务存在,则支持当前事务,如果当前没有事务,就以非事务方式执行。 have tx ? join(): session.exec() PROPAGATION_MANDATORY //表示如果当前事务存在,则支持当前事务,如果当前没有事务,则返回事务嵌套错误。 have tx ? join() : return error PROPAGATION_REQUIRES_NEW //表示新建一个全新Session开启一个全新事务,如果当前存在事务,则把当前事务挂起。 have tx ? stop old。 -> new session().new tx() PROPAGATION_NOT_SUPPORTED //表示以非事务方式执行操作,如果当前存在事务,则新建一个Session以非事务方式执行操作,把当前事务挂起。 have tx ? stop old。 -> new session().exec() PROPAGATION_NEVER //表示以非事务方式执行操作,如果当前存在事务,则返回事务嵌套错误。 have tx ? return error: session.exec() PROPAGATION_NESTED //表示如果当前事务存在,则在嵌套事务内执行,如嵌套事务回滚,则只会在嵌套事务内回滚,不会影响当前事务。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。 PROPAGATION_NOT_REQUIRED //表示如果当前没有事务,就新建一个事务,否则返回错误。 have tx ? return error: session.new tx() )
func NewPropagation ¶
func NewPropagation(arg string) Propagation
type SavePointStack ¶
type SavePointStack struct {
// contains filtered or unexported fields
}
session map是协程安全的 session对应SavePointStack是1:1关系,此处无需处理并发,因为都是单协程访问
func (*SavePointStack) Len ¶
func (s *SavePointStack) Len() int
func (SavePointStack) New ¶
func (it SavePointStack) New() SavePointStack
func (*SavePointStack) Pop ¶
func (s *SavePointStack) Pop() *string
func (*SavePointStack) Push ¶
func (s *SavePointStack) Push(k string)
Click to show internal directories.
Click to hide internal directories.