/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate;
import org.hibernate.internal.util.
StringHelper;
/**
* Indicates the manner in which JDBC Connections should be acquired. Inverse to
* {@link org.hibernate.ConnectionReleaseMode}.
*
* @author Steve Ebersole
*/
public enum
ConnectionAcquisitionMode {
/**
* The Connection will be acquired as soon as the Hibernate Session is opened. This
* also circumvents ConnectionReleaseMode, as the Connection will then be held until the
* Session is closed.
*/
IMMEDIATELY,
/**
* The legacy behavior. A Connection is only acquired when (if) it is actually needed.
*/
AS_NEEDED;
public static
ConnectionAcquisitionMode interpret(
String value) {
if (
value != null
&& ( "immediate".
equalsIgnoreCase(
value ) || "immediately".
equalsIgnoreCase(
value ) ) ) {
return
IMMEDIATELY;
}
return
AS_NEEDED;
}
public static
ConnectionAcquisitionMode interpret(
Object setting) {
if (
setting == null ) {
return null;
}
if (
setting instanceof
ConnectionAcquisitionMode ) {
return (
ConnectionAcquisitionMode)
setting;
}
final
String value =
setting.
toString();
if (
StringHelper.
isEmpty(
value ) ) {
return null;
}
return
interpret(
value );
}
}