View Javadoc
1   /*
2    *    Copyright 2013-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.cdi;
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  public enum Isolation {
27  
28    DEFAULT(null),
29  
30    NONE(TransactionIsolationLevel.NONE),
31  
32    READ_COMMITTED(TransactionIsolationLevel.READ_COMMITTED),
33  
34    READ_UNCOMMITTED(TransactionIsolationLevel.READ_UNCOMMITTED),
35  
36    REPEATABLE_READ(TransactionIsolationLevel.REPEATABLE_READ),
37  
38    SERIALIZABLE(TransactionIsolationLevel.SERIALIZABLE);
39  
40    private final TransactionIsolationLevel transactionIsolationLevel;
41  
42    Isolation(TransactionIsolationLevel value) {
43      this.transactionIsolationLevel = value;
44    }
45  
46    public TransactionIsolationLevel getTransactionIsolationLevel() {
47      return this.transactionIsolationLevel;
48    }
49  
50  }