/*
* 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;
A problem occurred accessing a property of an instance of a
persistent class by reflection, or via enhanced entities.
There are a number of possible underlying causes, including
- failure of a security check
- an exception occurring inside the getter or setter method
- a nullable database column was mapped to a primitive-type property
- the Hibernate type was not castable to the property type (or vice-versa)
Author: Gavin King
/**
* A problem occurred accessing a property of an instance of a
* persistent class by reflection, or via enhanced entities.
* There are a number of possible underlying causes, including
* <ul>
* <li>failure of a security check
* <li>an exception occurring inside the getter or setter method
* <li>a nullable database column was mapped to a primitive-type property
* <li>the Hibernate type was not castable to the property type (or vice-versa)
* </ul>
* @author Gavin King
*/
public class PropertyAccessException extends HibernateException {
private final Class persistentClass;
private final String propertyName;
private final boolean wasSetter;
Constructs a PropertyAccessException using the specified information.
Params: - cause – The underlying cause
- message – A message explaining the exception condition
- wasSetter – Was the attempting to access the setter the cause of the exception?
- persistentClass – The class which is supposed to contain the property in question
- propertyName – The name of the property.
/**
* Constructs a PropertyAccessException using the specified information.
*
* @param cause The underlying cause
* @param message A message explaining the exception condition
* @param wasSetter Was the attempting to access the setter the cause of the exception?
* @param persistentClass The class which is supposed to contain the property in question
* @param propertyName The name of the property.
*/
public PropertyAccessException(
Throwable cause,
String message,
boolean wasSetter,
Class persistentClass,
String propertyName) {
super( message, cause );
this.persistentClass = persistentClass;
this.wasSetter = wasSetter;
this.propertyName = propertyName;
}
public Class getPersistentClass() {
return persistentClass;
}
public String getPropertyName() {
return propertyName;
}
protected String originalMessage() {
return super.getMessage();
}
@Override
public String getMessage() {
return originalMessage()
+ ( wasSetter ? " setter of " : " getter of " )
+ StringHelper.qualify( persistentClass.getName(), propertyName );
}
}