| Deprecated Methods | 
| org.hibernate.cfg.Mappings.addUniqueConstraints(Table, List) Use
 Mappings.addUniqueConstraintHolders(org.hibernate.mapping.Table, java.util.List)instead | 
| org.hibernate.Hibernate.any(Type, Type) Use
 TypeHelper.any(org.hibernate.type.Type, org.hibernate.type.Type)instead. | 
| org.hibernate.id.enhanced.OptimizerFactory.buildOptimizer(String, Class, int) Use
 OptimizerFactory.buildOptimizer(String, Class, int, long)instead | 
| org.hibernate.cfg.annotations.TableBinder.buildUniqueConstraints(UniqueConstraint[]) Use
 TableBinder.buildUniqueConstraintHolders(javax.persistence.UniqueConstraint[])instead | 
| org.hibernate.jdbc.Batcher.closeConnection(Connection) Obtain connections from
 ConnectionProviderinstead | 
| org.hibernate.Session.connection() (scheduled for removal in 4.x).  Replacement depends on need; for doing direct JDBC stuff use
 Session.doWork(org.hibernate.jdbc.Work); for opening a 'temporary Session' use (TBD). | 
| org.hibernate.hql.ast.util.ASTUtil.create(ASTFactory, int, String) silly
 | 
| org.hibernate.Hibernate.createBlob(byte[]) Use
 LobHelper.createBlob(byte[])instead. | 
| org.hibernate.Hibernate.createBlob(byte[], Session) Use
 LobHelper.createBlob(byte[])instead on theLobHelperobtained fromSession.getLobHelper() | 
| org.hibernate.Hibernate.createBlob(InputStream) With no direct replacement.  Use
 Hibernate.createBlob(InputStream,long)instead, passing in the length | 
| org.hibernate.Hibernate.createBlob(InputStream, int) Use
 LobHelper.createBlob(InputStream, long)instead. | 
| org.hibernate.Hibernate.createBlob(InputStream, long) Use
 LobHelper.createBlob(InputStream, long)instead. | 
| org.hibernate.Hibernate.createBlob(InputStream, long, Session) Use
 LobHelper.createBlob(InputStream, long)instead. | 
| org.hibernate.Hibernate.createClob(Reader, int) Use
 LobHelper.createClob(Reader, long)instead | 
| org.hibernate.Hibernate.createClob(Reader, long) Use
 LobHelper.createClob(Reader, long)instead | 
| org.hibernate.Hibernate.createClob(Reader, long, Session) Use
 LobHelper.createClob(Reader, long)instead | 
| org.hibernate.Hibernate.createClob(String) Use
 LobHelper.createClob(String)instead | 
| org.hibernate.Hibernate.createClob(String, Session) Use
 LobHelper.createClob(String)instead on theLobHelperobtained fromSession.getLobHelper() | 
| org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory() 
 | 
| org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(Map) 
 | 
| org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Map) use the Java Persistence API
 | 
| org.hibernate.id.IdentifierGeneratorHelper.createNumber(long, Class) Use the
 holdersinstead. | 
| org.hibernate.classic.Session.createSQLQuery(String, String[], Class[]) use
 SQLQuery.addRoot(java.lang.String, java.lang.String)orSQLQuery.addEntity(java.lang.String)variants
 instead to define the aliases/classes | 
| org.hibernate.classic.Session.createSQLQuery(String, String, Class) use
 SQLQuery.addRoot(java.lang.String, java.lang.String)orSQLQuery.addEntity(java.lang.String)variants
 instead to define the alias/class | 
| org.hibernate.Hibernate.custom(Class) Use
 TypeHelper.custom(java.lang.Class)instead; see http://opensource.atlassian.com/projects/hibernate/browse/HHH-5182 | 
| org.hibernate.type.TypeFactory.custom(Class, Properties, TypeFactory.TypeScope) Only for use temporary use by
 Hibernate | 
| org.hibernate.Hibernate.custom(Class, Properties) Use
 TypeHelper.custom(java.lang.Class)instead; see http://opensource.atlassian.com/projects/hibernate/browse/HHH-5182 | 
| org.hibernate.Hibernate.custom(Class, String[], String[]) Use
 TypeHelper.custom(java.lang.Class)instead; see http://opensource.atlassian.com/projects/hibernate/browse/HHH-5182 | 
| org.hibernate.type.TypeFactory.customComponent(Class, Properties, TypeFactory.TypeScope) Only for use temporary use by
 Hibernate | 
| org.hibernate.classic.Session.delete(String) consider using HQL delete statements
 | 
| org.hibernate.classic.Session.delete(String, Object[], Type[]) consider using HQL delete statements
 | 
| org.hibernate.classic.Session.delete(String, Object, Type) consider using HQL delete statements
 | 
| org.hibernate.cfg.search.HibernateSearchEventListenerRegister.enableHibernateSearch(EventListeners, Properties) as of release 3.4.0.CR2, replaced by Hibernate Search's
 org.hibernate.search.cfg.EventListenerRegister#enableHibernateSearch(EventListeners, Properties) | 
| org.hibernate.Hibernate.entity(Class) Use
 TypeHelper.entity(java.lang.Class)instead; see http://opensource.atlassian.com/projects/hibernate/browse/HHH-5182 | 
| org.hibernate.Hibernate.entity(String) Use
 TypeHelper.entity(java.lang.Class)instead; see http://opensource.atlassian.com/projects/hibernate/browse/HHH-5182 | 
| org.hibernate.SessionFactory.evict(Class) Use
 Cache.evictEntityRegion(Class)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evict(Class, Serializable) Use
 Cache.containsEntity(Class, Serializable)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evictCollection(String) Use
 Cache.evictCollectionRegion(String)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evictCollection(String, Serializable) Use
 Cache.evictCollection(String,Serializable)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evictEntity(String) Use
 Cache.evictEntityRegion(String)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evictEntity(String, Serializable) Use
 Cache.evictEntity(String,Serializable)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evictQueries() Use
 Cache.evictQueryRegions()accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.SessionFactory.evictQueries(String) Use
 Cache.evictQueryRegion(String)accessed throughSessionFactory.getCache()instead. | 
| org.hibernate.cfg.annotations.TableBinder.fillTable(String, String, String, String, boolean, List, String, Table, Mappings) Use
 TableBinder.buildAndFillTable(java.lang.String, java.lang.String, org.hibernate.cfg.ObjectNameSource, org.hibernate.cfg.ObjectNameNormalizer.NamingStrategyHelper, boolean, java.util.List, java.lang.String, org.hibernate.mapping.Table, org.hibernate.cfg.Mappings, java.lang.String)instead. | 
| org.hibernate.classic.Session.filter(Object, String) use
 Session.createFilter(Object, String).Query.list() | 
| org.hibernate.classic.Session.filter(Object, String, Object[], Type[]) use
 Session.createFilter(Object, String).setXYZ.Query.list() | 
| org.hibernate.classic.Session.filter(Object, String, Object, Type) use
 Session.createFilter(Object, String).setXYZ.Query.list() | 
| org.hibernate.classic.Session.find(String) use
 Session.createQuery(java.lang.String).Query.list() | 
| org.hibernate.classic.Session.find(String, Object[], Type[]) use
 Session.createQuery(java.lang.String).setXYZ.Query.list() | 
| org.hibernate.classic.Session.find(String, Object, Type) use
 Session.createQuery(java.lang.String).setXYZ.Query.list() | 
| org.hibernate.Session.get(Class, Serializable, LockMode) LockMode parameter should be replaced with LockOptions
 | 
| org.hibernate.type.SingleColumnType.get(ResultSet, String) Use
 SingleColumnType.get(ResultSet, String, SessionImplementor)instead. | 
| org.hibernate.type.AbstractSingleColumnStandardBasicType.get(ResultSet, String) Use
 AbstractStandardBasicType.get(ResultSet, String, SessionImplementor)instead. | 
| org.hibernate.Session.get(String, Serializable, LockMode) LockMode parameter should be replaced with LockOptions
 | 
| org.hibernate.hql.ast.util.ASTUtil.getConstantName(Class, int) Use #getTokenTypeName instead
 | 
| org.hibernate.dialect.Dialect.getCreateSequenceStrings(String) Use
 Dialect.getCreateSequenceString(String, int, int)instead | 
| org.hibernate.hql.ast.tree.ConstructorNode.getDataType() (tell clover to ignore this method)
 | 
| org.hibernate.engine.SessionImplementor.getEnabledFilters() use #getLoadQueryInfluencers instead
 | 
| org.hibernate.type.CharBooleanType.getFalseString() Pass the true/false values into constructor instead.
 | 
| org.hibernate.engine.SessionImplementor.getFetchProfile() use #getLoadQueryInfluencers instead
 | 
| org.hibernate.engine.SessionImplementor.getFilterParameterType(String) use #getLoadQueryInfluencers instead
 | 
| org.hibernate.engine.SessionImplementor.getFilterParameterValue(String) use #getLoadQueryInfluencers instead
 | 
| org.hibernate.tuple.entity.EntityTuplizer.getIdentifier(Object) Use
 EntityTuplizer.getIdentifier(Object,SessionImplementor)instead. | 
| org.hibernate.metadata.ClassMetadata.getIdentifier(Object, EntityMode) Use
 ClassMetadata.getIdentifier(Object,SessionImplementor)instead | 
| org.hibernate.persister.entity.EntityPersister.getIdentifier(Object, EntityMode) Use
 EntityPersister.getIdentifier(Object,SessionImplementor)instead | 
| org.hibernate.engine.Mapping.getIdentifierGeneratorFactory() temporary solution
 | 
| org.hibernate.engine.jdbc.JdbcSupport.getLobCreator() Use
 JdbcSupport.getLobCreator(LobCreationContext)instead. | 
| org.hibernate.sql.Select.getLockMode() Instead use getLockOptions
 | 
| org.hibernate.event.AbstractPreDatabaseOperationEvent.getSource() Use
 AbstractEvent.getSession()instead | 
| org.hibernate.cfg.Mappings.getTableUniqueConstraints() Use
 Mappings.getUniqueConstraintHoldersByTable()instead | 
| org.hibernate.type.CharBooleanType.getTrueString() Pass the true/false values into constructor instead.
 | 
| org.hibernate.tuple.entity.EntityTuplizer.instantiate(Serializable) Use
 EntityTuplizer.instantiate(Serializable, SessionImplementor)instead. | 
| org.hibernate.metadata.ClassMetadata.instantiate(Serializable, EntityMode) Use
 ClassMetadata.instantiate(Serializable, SessionImplementor)instead | 
| org.hibernate.persister.entity.EntityPersister.instantiate(Serializable, EntityMode) Use
 EntityPersister.instantiate(Serializable, SessionImplementor)instead | 
| org.hibernate.classic.Session.iterate(String) use
 Session.createQuery(java.lang.String).Query.iterate() | 
| org.hibernate.classic.Session.iterate(String, Object[], Type[]) use
 Session.createQuery(java.lang.String).setXYZ.Query.iterate() | 
| org.hibernate.classic.Session.iterate(String, Object, Type) use
 Session.createQuery(java.lang.String).setXYZ.Query.iterate() | 
| org.hibernate.cfg.Mappings.iterateAuxliaryDatabaseObjects() To fix misspelling; use
 Mappings.iterateAuxiliaryDatabaseObjects()instead | 
| org.hibernate.cfg.Mappings.iterateAuxliaryDatabaseObjectsInReverse() To fix misspelling; use
 Mappings.iterateAuxiliaryDatabaseObjectsInReverse()instead | 
| org.hibernate.cfg.Environment.jvmHasJDK14Timestamp() Starting with 3.3 Hibernate requires JDK 1.4 or higher
 | 
| org.hibernate.cfg.Environment.jvmSupportsGetGeneratedKeys() Starting with 3.3 Hibernate requires JDK 1.4 or higher
 | 
| org.hibernate.cfg.Environment.jvmSupportsLinkedHashCollections() Starting with 3.3 Hibernate requires JDK 1.4 or higher
 | 
| org.hibernate.Session.load(Class, Serializable, LockMode) LockMode parameter should be replaced with LockOptions
 | 
| org.hibernate.loader.entity.UniqueEntityLoader.load(Serializable, Object, SessionImplementor) use
 UniqueEntityLoader.load(java.io.Serializable, Object, SessionImplementor, LockOptions)instead. | 
| org.hibernate.Session.load(String, Serializable, LockMode) LockMode parameter should be replaced with LockOptions
 | 
| org.hibernate.Session.lock(Object, LockMode) instead call buildLockRequest(LockMode).lock(object)
 | 
| org.hibernate.Session.lock(String, Object, LockMode) instead call buildLockRequest(LockMode).lock(entityName, object)
 | 
| org.hibernate.util.JDBCExceptionReporter.logWarnings(SQLWarning) Use
 JDBCExceptionReporter.walkWarnings(java.sql.SQLWarning, org.hibernate.util.JDBCExceptionReporter.WarningHandler)instead | 
| org.hibernate.util.JDBCExceptionReporter.logWarnings(SQLWarning, String) Use
 JDBCExceptionReporter.walkWarnings(java.sql.SQLWarning, org.hibernate.util.JDBCExceptionReporter.WarningHandler)instead | 
| org.hibernate.type.SingleColumnType.nullSafeGet(ResultSet, String) Use
 SingleColumnType.nullSafeGet(ResultSet, String, SessionImplementor)instead | 
| org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeGet(ResultSet, String) Use
 AbstractStandardBasicType.nullSafeGet(ResultSet, String, SessionImplementor)instead | 
| org.hibernate.usertype.UserType.nullSafeGet(ResultSet, String[], Object) SessionImplementor will be added as an argument in a future version (see HHH-5968)
 | 
| org.hibernate.usertype.UserType.nullSafeSet(PreparedStatement, Object, int) SessionImplementor will be added as an argument in a future version (see HHH-5968)
 | 
| org.hibernate.type.SingleColumnType.nullSafeSet(PreparedStatement, T, int) Use
 Type.nullSafeSet(PreparedStatement, Object, int, SessionImplementor)instead. | 
| org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(PreparedStatement, T, int) Use
 AbstractStandardBasicType.nullSafeSet(PreparedStatement, Object, int, SessionImplementor)instead. | 
| org.hibernate.jdbc.Batcher.openConnection() Obtain connections from
 ConnectionProviderinstead | 
| org.hibernate.Session.reconnect() Manual reconnection is only needed in the case of
 application-supplied connections, in which case the
 Session.reconnect(java.sql.Connection)for should be used. | 
| org.hibernate.Session.refresh(Object, LockMode) LockMode parameter should be replaced with LockOptions
 | 
| org.hibernate.sql.Template.renderOrderByStringTemplate(String, Dialect, SQLFunctionRegistry) Use
 Template.renderOrderByStringTemplate(String,ColumnMapper,SessionFactoryImplementor,Dialect,SQLFunctionRegistry)instead | 
| org.hibernate.sql.Template.renderWhereStringTemplate(String, String, Dialect) Only intended for annotations usage; use
 Template.renderWhereStringTemplate(String, String, Dialect, SQLFunctionRegistry)instead | 
| org.hibernate.tuple.entity.EntityTuplizer.resetIdentifier(Object, Serializable, Object) Use
 EntityTuplizer.resetIdentifier(Object, Serializable, Object, SessionImplementor)instead | 
| org.hibernate.persister.entity.EntityPersister.resetIdentifier(Object, Serializable, Object, EntityMode) Use
 EntityPersister.resetIdentifier(Object, Serializable, Object, SessionImplementor)instead | 
| org.hibernate.classic.Session.save(Object, Serializable) declare identifier properties for all classes
 | 
| org.hibernate.classic.Session.save(String, Object, Serializable) declare identifier properties for all classes
 | 
| org.hibernate.classic.Session.saveOrUpdateCopy(Object) use
 Session.merge(Object) | 
| org.hibernate.classic.Session.saveOrUpdateCopy(Object, Serializable) with no replacement
 | 
| org.hibernate.classic.Session.saveOrUpdateCopy(String, Object) use
 Session.merge(String, Object) | 
| org.hibernate.classic.Session.saveOrUpdateCopy(String, Object, Serializable) with no replacement
 | 
| org.hibernate.Hibernate.serializable(Class) Use
 SerializableType.SerializableType(java.lang.Class)instead. | 
| org.hibernate.type.SingleColumnType.set(PreparedStatement, T, int) Use
 SingleColumnType.set(PreparedStatement, Object, int, SessionImplementor)instead. | 
| org.hibernate.type.AbstractSingleColumnStandardBasicType.set(PreparedStatement, T, int) Use
 AbstractStandardBasicType.set(PreparedStatement, Object, int, SessionImplementor)instead. | 
| org.hibernate.proxy.dom4j.Dom4jProxy.setAttributeValue(QName, String) 
 | 
| org.hibernate.tuple.ElementWrapper.setAttributeValue(QName, String) 
 | 
| org.hibernate.proxy.dom4j.Dom4jProxy.setAttributeValue(String, String) 
 | 
| org.hibernate.tuple.ElementWrapper.setAttributeValue(String, String) 
 | 
| org.hibernate.id.factory.IdentifierGeneratorFactory.setDialect(Dialect) The intention is that Dialect should be required to be specified up-front and it would then get
 ctor injected.
 | 
| org.hibernate.engine.SessionImplementor.setFetchProfile(String) use #getLoadQueryInfluencers instead
 | 
| org.hibernate.ejb.packaging.PersistenceMetadata.setHbmfiles(List) use getHbmfiles() rather
 | 
| org.hibernate.tuple.entity.EntityTuplizer.setIdentifier(Object, Serializable) Use
 EntityTuplizer.setIdentifier(Object, Serializable, SessionImplementor)instead. | 
| org.hibernate.metadata.ClassMetadata.setIdentifier(Object, Serializable, EntityMode) Use
 ClassMetadata.setIdentifier(Object, Serializable, SessionImplementor)instead. | 
| org.hibernate.persister.entity.EntityPersister.setIdentifier(Object, Serializable, EntityMode) Use
 EntityPersister.setIdentifier(Object, Serializable, SessionImplementor)instead. | 
| org.hibernate.tool.hbm2ddl.SchemaExport.setImportFile(String) use
 org.hibernate.cfg.Environment.HBM2DDL_IMPORT_FILE | 
| org.hibernate.envers.query.impl.AbstractAuditQuery.setLockMode(LockMode) Instead use setLockOptions
 | 
| org.hibernate.sql.Select.setLockMode(LockMode) Instead use setLockOptions
 | 
| org.hibernate.mapping.Collection.setOwner(PersistentClass) Inject the owner into constructor.
 | 
| org.hibernate.criterion.Expression.sql(String) use
 Restrictions.sqlRestriction(String) | 
| org.hibernate.criterion.Expression.sql(String, Object[], Type[]) use
 Restrictions.sqlRestriction(String, Object[], Type[]) | 
| org.hibernate.criterion.Expression.sql(String, Object, Type) use
 Restrictions.sqlRestriction(String, Object, Type) | 
| org.hibernate.classic.Session.update(Object, Serializable) declare identifier properties for all classes
 | 
| org.hibernate.classic.Session.update(String, Object, Serializable) declare identifier properties for all classes
 |