org.hibernate.PropertyAccessException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright Red Hat Inc. and Hibernate Authors
*/
package org.hibernate;
import static org.hibernate.internal.util.StringHelper.qualify;
import org.checkerframework.checker.nullness.qual.Nullable;
/**
* 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, or
*
- 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 {@code 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(
@Nullable 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()
+ ": '" + qualify( persistentClass.getName(), propertyName ) + "'"
+ ( wasSetter ? " (setter)" : " (getter)" );
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy