/* * 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 java.io.Serializable; import org.hibernate.pretty.MessageHelper; /** * Thrown when Hibernate could not resolve an object by id, especially when * loading an association. * * @author Gavin King */ public class UnresolvableObjectException extends HibernateException { private final Serializable identifier; private final String entityName; /** * Constructs an UnresolvableObjectException using the specified information. * * @param identifier The identifier of the entity which could not be resolved * @param entityName The name of the entity which could not be resolved */ public UnresolvableObjectException(Serializable identifier, String entityName) { this( "No row with the given identifier exists", identifier, entityName ); } protected UnresolvableObjectException(String message, Serializable identifier, String clazz) { super( message ); this.identifier = identifier; this.entityName = clazz; } /** * Factory method for building and throwing an UnresolvableObjectException if the entity is null. * * @param entity The entity to check for nullness * @param identifier The identifier of the entity * @param entityName The name of the entity * * @throws UnresolvableObjectException Thrown if entity is null */ public static void throwIfNull(Object entity, Serializable identifier, String entityName) throws UnresolvableObjectException { if ( entity == null ) { throw new UnresolvableObjectException( identifier, entityName ); } } public Serializable getIdentifier() { return identifier; } public String getEntityName() { return entityName; } @Override public String getMessage() { return super.getMessage() + ": " + MessageHelper.infoString( entityName, identifier ); } }