1 /* 2 * The contents of this file are subject to the terms 3 * of the Common Development and Distribution License 4 * (the License). You may not use this file except in 5 * compliance with the License. 6 * 7 * You can obtain a copy of the license at 8 * https://glassfish.dev.java.net/public/CDDLv1.0.html or 9 * glassfish/bootstrap/legal/CDDLv1.0.txt. 10 * See the License for the specific language governing 11 * permissions and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL 14 * Header Notice in each file and include the License file 15 * at glassfish/bootstrap/legal/CDDLv1.0.txt. 16 * If applicable, add the following below the CDDL Header, 17 * with the fields enclosed by brackets [] replaced by 18 * you own identifying information: 19 * "Portions Copyrighted [year] [name of copyright owner]" 20 * 21 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 22 */ 23 package javax.persistence; 24 25 /** 26 * The <code>EntityTransaction</code> interface is used to control 27 * resource transactions on resource-local entity managers. The 28 * {@link EntityManager#getTransaction EntityManager.getTransaction()} 29 * method returns the <code>EntityTransaction</code> interface. 30 * 31 * @since Java Persistence 1.0 32 */ 33 public interface EntityTransaction { 34 /** 35 * Start the resource transaction. 36 * @throws IllegalStateException if {@link #isActive()} is true. 37 */ 38 public void begin(); 39 40 /** 41 * Commit the current transaction, writing any unflushed 42 * changes to the database. 43 * @throws IllegalStateException if {@link #isActive()} is false. 44 * @throws RollbackException if the commit fails. 45 */ 46 public void commit(); 47 48 /** 49 * Roll back the current transaction 50 * @throws IllegalStateException if {@link #isActive()} is false. 51 * @throws PersistenceException if an unexpected error 52 * condition is encountered. 53 */ 54 public void rollback(); 55 56 /** 57 * Mark the current transaction so that the only possible 58 * outcome of the transaction is for the transaction to be 59 * rolled back. 60 * @throws IllegalStateException if {@link #isActive()} is false. 61 */ 62 public void setRollbackOnly(); 63 64 /** 65 * Determine whether the current transaction has been marked 66 * for rollback. 67 * @throws IllegalStateException if {@link #isActive()} is false. 68 */ 69 public boolean getRollbackOnly(); 70 71 /** 72 * Indicate whether a transaction is in progress. 73 * @throws PersistenceException if an unexpected error 74 * condition is encountered. 75 */ 76 public boolean isActive(); 77 } 78