org.hibernate.PropertyAccessException Maven / Gradle / Ivy
/*
* 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 .
*/
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
*/
public class PropertyAccessException extends HibernateException {
private final Class persistentClass;
private final String propertyName;
private final boolean wasSetter;
/**
* 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 );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy