/*
* 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;
/**
* Thrown when a property cannot be persisted because it is an association
* with a transient unsaved entity instance.
*
* @author Gail Badner
*/
public class
TransientPropertyValueException extends
TransientObjectException {
private final
String transientEntityName;
private final
String propertyOwnerEntityName;
private final
String propertyName;
/**
* Constructs a {@link TransientPropertyValueException} instance.
*
* @param message - the exception message;
* @param transientEntityName - the entity name for the transient entity
* @param propertyOwnerEntityName - the entity name for entity that owns
* the association property.
* @param propertyName - the property name
*/
public
TransientPropertyValueException(
String message,
String transientEntityName,
String propertyOwnerEntityName,
String propertyName) {
super(
message );
this.
transientEntityName =
transientEntityName;
this.
propertyOwnerEntityName =
propertyOwnerEntityName;
this.
propertyName =
propertyName;
}
/**
* Returns the entity name for the transient entity.
* @return the entity name for the transient entity.
*/
public
String getTransientEntityName() {
return
transientEntityName;
}
/**
* Returns the entity name for entity that owns the association
* property.
* @return the entity name for entity that owns the association
* property
*/
public
String getPropertyOwnerEntityName() {
return
propertyOwnerEntityName;
}
/**
* Returns the property name.
* @return the property name.
*/
public
String getPropertyName() {
return
propertyName;
}
@
Override
public
String getMessage() {
return super.getMessage() + " : "
+
StringHelper.
qualify(
propertyOwnerEntityName,
propertyName ) + " -> " +
transientEntityName;
}
}