View Javadoc
1   /*
2    *    Copyright 2009-2022 the original author or authors.
3    *
4    *    Licensed under the Apache License, Version 2.0 (the "License");
5    *    you may not use this file except in compliance with the License.
6    *    You may obtain a copy of the License at
7    *
8    *       https://www.apache.org/licenses/LICENSE-2.0
9    *
10   *    Unless required by applicable law or agreed to in writing, software
11   *    distributed under the License is distributed on an "AS IS" BASIS,
12   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *    See the License for the specific language governing permissions and
14   *    limitations under the License.
15   */
16  package org.mybatis.guice.transactional;
17  
18  import org.apache.ibatis.session.TransactionIsolationLevel;
19  
20  /**
21   * Enum of isolation levels. This enum exists because Java annotations do not support null default values - so we need
22   * to add the DEFAULT level which means - do not specify an isolation level.
23   *
24   * @author Jeff Butler
25   *
26   * @since 3.1
27   */
28  public enum Isolation {
29  
30    DEFAULT(null),
31  
32    NONE(TransactionIsolationLevel.NONE),
33  
34    READ_COMMITTED(TransactionIsolationLevel.READ_COMMITTED),
35  
36    READ_UNCOMMITTED(TransactionIsolationLevel.READ_UNCOMMITTED),
37  
38    REPEATABLE_READ(TransactionIsolationLevel.REPEATABLE_READ),
39  
40    SERIALIZABLE(TransactionIsolationLevel.SERIALIZABLE);
41  
42    private final TransactionIsolationLevel transactionIsolationLevel;
43  
44    private Isolation(TransactionIsolationLevel transactionIsolationLevel) {
45      this.transactionIsolationLevel = transactionIsolationLevel;
46    }
47  
48    public TransactionIsolationLevel getTransactionIsolationLevel() {
49      return transactionIsolationLevel;
50    }
51  
52  }