blob: f897de226740bfbeffb05fd9f01164704679d802 [file] [log] [blame]
Hibernate Changelog
===================
Changes in version 2.1.4 (2.6.2004)
------------------------------------
* improved Session serialization support by adding ability to serialize unflushed sessions (Steve Ebersole)
* fixed Session.clear functionality to clear the internal nonExists cache (Steve Ebersole)
* added "dynamic instantiation" (i.e., select new foo() ...) support to ScrollableResultsImpl and IteratorImpl (Steve Ebersole)
* added support for multi-parameter SQL functions (Steve Ebersole)
* fixed hbm2ddl generating infinite indexes on MySQL (Michael Gloegl)
* fixed alias precedence in HQL queries, function names are second (Steve Ebersole)
* added "transactional" as allowed cache concurrency strategy in XML configuration file
* improved System.getProperties() with security exception warning in secure environments
* improved Proxool integration, better property handling
* fixed problem with use of getDefinedMethod() in secure environments (Ken Arnold)
* fixed bug in createSQLQuery() which prohibited multiple aliases for the same entity (Max Andersen)
* fixed query cache misses when using named bind parameters (Michael Greer)
* recognize "left" and "right as keywords in SQL fragments
* recognize SQL quoted identifiers in SQL fragments
* improved identity handling on SQL Server by using scope_identity() for update counts (Arthur Fitt)
* added DB2390Dialect for DB2/390 databases (Kristoffer Dyrkorn)
* fixed a bug in toArray() of identifier bag collections (Khachchou Mohammed)
* fixed a problem with DDL generation for serial columns in Informix
* fixed a problem with DDL generation for timestamp columns in Informix (Michael Schmidt)
* fixed a NPE that occurred calling saveOrUpdateCopy() for components
* fixed a bug with replicate() and uninitialized collections
* fixed a bug caching one-to-one associations
* fixed eviction from named query cache regions
Changes in version 2.1.3 (25.4.2004)
-----------------------------------
* added SELECT-clause SQL function support to main Dialects
* fixed a problem where some unnecessary selects where issued for optional one-to-one associations
* fixed a bug in SQL generation for criteria queries with multiple one-to-many joins
* deprecated everything related to PersistentEnum
* fixed an NPE that occurred when using <one-to-one property-ref> with composite ids
* fixed a problem with JCA adaptor on WebLogic (Michael Gloegl)
* improved behavior when removing elements from <idbag>s
* fixed a bug in getGeneratedKeys() support (Michael Gloegl, Kevin Day)
* fixed a bug when using Criteria queries with collections of joined-subclasses
* fixed an NPE that occurred when calling comparator() on a lazy sorted set (Attila Szegedi)
* fixed a bug when using setMaxResults() with native SQL queries in some Dialects
* validate that composite id classes override hashCode() (Adrien)
* fixed some minor problems with saveOrUpdateCopy()
* fixed some problems in OSCache provider
* fixed an NPE that occurred when calling a lazy collection after evicting from session
* fixed an NPE that occurred when select-before-update is used with unversioned data (Patrick Peralta)
* fixed a bug where dynamic-components could not be queried (Massimo Ferrari)
* SQL formula parser now recognizes all Dialect-specific SQL functions (Anthony Patricio)
* fixed a problem where SQL CASE statements could not appear in SQL formulas
* fixed a problem where subselects with joins could not appear in SQL formulas
* C3P0 and Proxool pools now cleaned up after SessionFactory.close()
* fixed a bug where dirty checking of mutable properties was broken after lock()
* fixed a minor bug where orphan delete was broken for newly saved instances
* added Query.setFetchSize() and Criteria.setFetchSize()
* PreparedStatement pooling in DBCPConnectionProvider can now be disabled (Emmanuel Bernard)
* Query.setProperties(Object) now detects array and collection valued properties and delegates to Query.setParameterList() (Max Andersen, Nick Heudecker)
* lengths of positional parameters and types arrays are now validated
* fixed an obscure problem where a PreparedStatement was not closed
Changes in version 2.1.2 (4.2.2004)
-----------------------------------
* added Session.isDirty()
* fixed a very obscure concurrency problem with read-write cache for inverse collections
* deprecated Criteria.returnMaps() / Criteria.returnRootEntities() in favor of new ResultTransformer framework
* don't cache objects with dynamic-update="true" or <joined-subclass> mappings immediately after insert/update
* added version checking to saveOrUpdateCopy()
* fixed constraint violations that occurred when mixing identity columns with other id generation strategies
* added Sybase 11.9.2 dialect to support older versions of Sybase that do not support ANSI joins (Colm O' Flaherty)
* added Informix9Dialect (Finn McCann and Max Andersen)
* added DB2400Dialect (Peter DeGregorio)
* fixed a problem where mapping validation failure was reported as duplicate import (Michael Gloegl)
* fixed a problem with Expression.not() in MySQL (Michael Gloegl)
* added support for ResultSet.getGeneratedKeys() (David Morris, John Kristian)
* added check attribute to allow check constraints in DDL
* implicit polymorphism for Criteria queries (Shorn Tolley)
* use IF EXISTS for dropping hilo tables (Michael Gloegl)
* better exception report if deleted object is resaved by cascade
* support nested components in Example queries (Emmanuel Bernard)
* fixed a minor problem with onDelete() callbacks
* fixed an obscure problem with select-before-update
* added SunONETransactionManagerLookup (Robert Davidson)
* fixed a problem with replicate() and <joined-subclass> mappings
* made setParameterList() accept empty lists and deny null values (Max Andersen)
* validation check on query parameters now allows setParameter(x, null) (Max Andersen)
* added default-access to DTD (Max Andersen)
* made Query.setParameterList() accept empty lists and deny null values (Max Andersen)
* allow Query.setParameter(x, null) (Max Andersen)
* queries with "select new" now cacheable
* throw meaningful exception when lazy initialization occurs on disconnected session
* added default-access to <hibernate-mapping> (Max Andersen)
* added -text support to SchemaUpdate (Max Andersen, Matt Hall)
* fixed broken implementation of embedded composite keys with createSQLQuery() (Max Andersen)
* added hibernate.cache.use_minimal_puts config property to reduce unnecessary second-level cache puts
* optimized performance of orphan delete detection (Bertrand Renuart)
* fixed problem where unnecessary UPDATE occurred after INSERT for versioned objects with collections
* WebSphereTransactionManagerLookup for WAS 5.1 (Edina Pimp)
* Criteria queries now cacheable (Mario Ivankovits)
* fixed problem with ordered, paginated queries in DB2 (Tim Collins)
* fixed a bug caching <idbag>s
* lazy="true" collections are now lazy even when available in cache
* fixed a problem with version unsaved-value="negative"
* added hibernate.cache.region_prefix config property (William Drai)
* fixed problem where configuration input streams were not closed (Rajesh Patel)
Changes in version 2.1.1 (17.12.2003)
-------------------------------------
* added optional package attribute to <hibernate-mapping>
* added <meta-value> element to allow simpler <any> mapping
* native SQL queries are now cacheable - added <synchronize> element to allow correct result set expiry
* fixed a bug in CGLIB2 integration (Chris Nockleberg)
* added NamingStrategy
* don't cache objects with formula properties immediately after insert/update
* log generated SQL to a special category
* type of property with access="field" may now be guessed using reflection
Changes in version 2.1 final (12.12.2003)
-----------------------------------------
* fixed a problem with CGLIB2 proxies and method calls inside constructors
* fixed a bug running SchemaExportTask with mappings in jar files (Tom McCune)
* allow custom persister declaration for subclasses (Nick Johnson)
* fixed handling of sequences in SchemaUpdate on Oracle (Andrew Delpha)
* fixed a bug where Iterator did not handle single null values correctly
* detect and throw exception in the case of a duplicate property mapping
* don't auto-create indexes for collection foreign keys (roll back to 2.0.x)
Changes in version 2.1 rc1 (29.11.2003)
---------------------------------------
* long identifier and discriminator column names are now safely aliased (Max Andersen)
* cleaned up mapping package to allow applications to manipulate metamodel programmatically
* fixed a recent bug where collection sort order was lost in second-level cache
* formula attribute now supported for joined-subclass mappings
* formula properties may now be used anywhere in queries
* dialect-specific query pagination for SQL Server
* fixed a bug where a long path expression ending in collection access by index missed some tables in SQL FROM clause
* fixed a very ancient performance problem where null one-to-one associations caused n+1 selects
* added Session.saveOrUpdateCopy()
* fixed some bugs in Example queries
* fixed some minor bugs in dialect-specific query pagination
* immutable entity passed to update() is now lock()ed instead
* reworked the semantics of nonstrict-read-write
* JCS cache support now deprecated
* fixed some obscure bugs in collection handling
* migrated to CGLIB2 (thanks to Chris Nockleberg)
* fixed bugs in replicate()
* fixed a bug affecting joined-subclass mappings with dynamic-update=true
* performance improvements to boolean type mappings (Bertrand Renuart)
* integrated JBoss TreeCache clustered cache (thanks to Bela Ban and Ben Wang)
* fixed a bug in new query parameter validation (Steve Ebersole)
* fixed a bug where <any> mappings caused unnecessary ObjectDeletedException at flush time
* fixed a bug where associations with property-ref mappings were not properly cached
* throw PropertyValueException when not-null properties are null at flush time
* added unsaved-value attribute to version property mapping (Emmanuel Bernard)
* tolerate classnames containing $ (Steve Ebersole)
Changes in version 2.1 beta 6 (5.11.2003)
-----------------------------------------
* added Session.cancelQuery()
* improvements to transaction handling for failed commit (thanks to Juergen Hoeller)
* added cascade="delete-orphan"
* fixed an exception that occurred when a property was declared not-null="true" update="false" (thanks to John Kristian)
* support multiple named query cache regions (Mikheil Kapanadze)
* some improvements to collection reattachment
* fixed a bad bug with adds to an uninitialized bag or list
* removed support for <dynabean/> components
* added <dynamic-component/> mapping for properties of type Map
* fixed a bug where schema export generated index names that were too long for DB2
* allow per-region expiry policies in OSCache (Matthias Bogaert)
* fixed a stack overflow that could occur while initializing nonlazy collections
* fixed a bug in case-insensitive like for Example queries
* fixed a bug in ScrollableResults.setRowNumber() (Martin Priekopa)
* improvements to the cache concurrency strategies
Changes in version 2.1 beta 5 (30.10.2003)
------------------------------------------
* Support for custom CollectionPersister (Nick Johnson, Max Andersen)
* Support for named SQL queries (Max Andersen)
* duplicate named queries now throws MappingException instead of just logging warning (Max Andersen)
* fixed problems with WebSphereTransactionManagerLookup (Ralf Taugerbeck, Daniel Bradby)
* added support for custom collection persisters (thanks to Max Anderson, Nick Johnson)
* fixed a performance problem during query compilation (Bulent Erdemir)
* composite keys now supported in createSQLQuery() (Max Andersen)
* fixed JCA adaptor to run in WebLogic (Daniel Bradby)
* integrated SwarmCache (Jason Carreira)
* integrated OSCache (Matthias Bogaert)
* fixed an NPE that could occur with lists and orphan delete
* allow nullable one-to-one with property-ref
* improved usage of Dialect-specific limit SQL
* fixed problem where non-lazy collections held by cached objects were not immediately initialized
* fixed getReturnTypes() for native SQL queries (Max Andersen)
* fixed problems with Criterions that applied to multi-column properties
* check of rowcounts when JDBC batch updates enabled
* added named SQL queries using <sql-query> element (Max Andersen)
* added some extra validations so Hibernate fails earlier when user makes mistakes
* allow lazy="true" as an alternative to proxy="ClassName"
* removed dependency to commons-lang
* SchemaExport now creates indexes for collection foreign key columns if specified by Dialect
* fixed a bug parsing named parameters in setParameterList()
* select new Foo(...) will now tolerate null values if the constructor accepts a wrapper type
* fixed a problem detecting Proxool
* added logging of persistent object states during flush()
* allow "not null" as a discriminator value
* added "parameters" config param to "sequence" generator (Matthias Bogaert)
Changes in version 2.1 beta 4 (3.10.2003)
-----------------------------------------
* fixed a bug where <any> mappings did not handle proxies correctly
* implemented new optimistic-lock strategies
* fixed several bugs in Criteria query API
* fixed a bug caching property-ref associations
* improvements to XML Databinder (Ara Abrahamian)
* added Session.replicate() and ReplicationMode
* added ScrollableResults.setRowNumber() / ScrollableResults.getRowNumber()
* added query cache and Query.setCacheable()
* added Criteria.returnMaps()
* fixed some problems with CGLIB proxies
* fixed an NPE that occurred when a joined-subclass of a versioned entity defined only collections
* added the access attribute, direct field access and the PropertyAccessor extension point
* added MatchMode for use with Criteria queries (thanks to Michael Gloegl)
* fixed a bug where some lazy="false" collections were not immediately initialized
* fixed problem with WebSphere 5 TransactionManager
* support schema attribute in MySQL, by using an underscore in the table name (Chris Hane)
* now seperate Dialects for Interbase and Firebird (Reha Cenani, Max Andersen)
* removed built-in PreparedStatement cache
* added Session.getSessionFactory()
* fixed problem with native SQL queries and Query.setProperties() (Max Andersen)
* Query now fully validates parameters against the query string before passing them to JDBC (Max Andersen)
* fixed an NPE in SessionFactory.close()
* fixed an NPE that occurred when using <idbag>s
* added SQL-level query results paging to DB2Dialect
* "foreign" id generator now handles detached instances
Changes in version 2.1 beta 3 (7.9.2003)
----------------------------------------
* added Example queries
* fixed an exception that occurred at startup with <key-many-to-one> and <joined-subclass>
* fixed a bug where composite-elements were not being updated if a property not in the equals() was changed
* <parent> property of a composite-element may now be used in equals()
* named parameters may now be used in HQL order by clause
* null value of version property now indicates unsaved instance
* added select-before-update attribute
* two-phase loading now use for components
* better implementation of equals()/hashCode() for proxies
* added property-ref attribute to <many-to-one>
* renamed result() to uniqueResult()
* added Session.get()
* added HashtableCacheProvider
* JTA TransactionManager now used even when not using Hibernate Transaction API
* always bypass process-level cache for LockMode.READ
Changes in version 2.1 beta 2 (27.8.2003)
-----------------------------------------
* <subclass> and <joined-subclass> may now appear outside of a <class> element, by providing the extends attribute (Max Andersen)
* fixed an NPE at startup that was introduced in beta 1
* fixed a bug in Map.putAll()
* new pluggable cache API
- deprecated <jcs-cache> in favor of <cache>
- net.sf.hibernate.cache.CacheProvider settable via hibernate.cache.provider_class
* more aggressive caching
* added Hibernate.close(Iterator)
* Criteria queries may now include joins
- Criteria.addJoin()
- Criteria.createCriteria()
* hibernate.transaction.manager_lookup_class should now ALWAYS be specified in JTA environment when using jcs caching
* fixed a bug caching <key-many-to-one>
* fixed bug where cached component did not get <parent> property populated
* added hibernate.max_fetch_depth property
* smarter outer-join fetching
* transient object may now be associated with session using Session.lock()
* added Query.result(), Criteria.result()
Changes in version 2.1 beta 1 (10.8.2003)
-----------------------------------------
* batch-size attribute for collection and class mappings, to allow batch loading
* collections of "value types" (including composite-elements) may now appear in HQL from clause
* more efficient loading of collections, and better handling of non-lazy collections
* added HQL index() function to allow access to collection element index
* added Session.createSQLQuery() (Max Andersen)
* added outer-join attribute to collection mappings
* Criteria.setFetchMode() now applies to collection-valued path expressions
* added property-ref attribute to <one-to-one>, enabling unique foreign key associations
* added hibernate.max_fetch_depth config property
* added hibernate.hbm2ddl.auto config property
* fixed a bug with combination of <jcs-cache> and <key-many-to-one>
* support for Dialect-specific SQL functions in HQL select clause (David Channon)
* added Session.clear()
Changes in version 2.0.2 (2.8.2003)
-----------------------------------
* subqueries may now use HAVING and GROUP BY clauses
* fixed a bug with setMaxResults(), setFirstResult() in HSQL (introduced in 2.0.1)
* fixed a bug in Set.removeAll()
* fixed a bug in SchemaUpdate (Mathias Bogaert)
* added weak typing functionality to ScrollableResults
* fixed a bug with "calendar" versioning in IBM JDK1.3.1 (workaround for JDK bug)
* fixed a bug in mapping DTD that caused a problem for hbm2java (Max Andersen)
* fixed a bug querying nested components
* SQL generation now prefers ANSI-style inner joins to theta inner joins
* fixed a bug caching collection references loaded using FETCH
* fixed a bug with composite foreign keys in normalized table mappings (Tom Sedge)
* limit support for Interbase (Ludovic Orban)
* added where attribute to <class> mappings
* added cascade="all-delete-orphan" for collection mappings
* fixed a bug binding named parameters with setMaxResults()/setFirstResults()
* fixed some minor bugs in HQL translator
* fixed a long-standing bug where a <key-many-to-one> could not be dereferenced in HQL
* SQL UPDATEs now occur in a predictable order (same order as objects were loaded)
* support for SELECT ... FOR UPDATE in SAPDB
* fixed bug where Criteria queries against a subclass also returned superclass instances
* fixed a very rare bug where an update could get lost with normalized mappings
* fixed a problem with proxied class heirarchies rooted at an interface or abstract class
* where and order-by attributes now allow SQL function calls and subselects
* added formula attribute to <property> tag, to allow "computed" properties
* fixed a bug where PreparedStatements were sometimes not closed when an exception occured
* workaround for a problem with <joined-subclass> and Interceptor.onFlushDirty()
Changes in version 2.0.1 (17.6.2003)
------------------------------------
* fixed some problems with new dialect-specific LIMIT clauses
* improved parsing of collection where attribute
* made one-to-many bags more efficient (they are really sets!)
* allowed type="calendar" for <version> properties
* fixed a bug with locking a versioned composite-id class
* refresh() may now take a transient instance
* added ProxoolConnectionProvider (Martin Crawford)
* fixed some minor JCA issues (Mike Mosiewicz)
* fixed a bug with FETCH and sorted associations
* improved performance of SchemaUpdate tool (Teodor Danciu)
* fixed a bug in Configuration.addFile(String) (Ken Geis)
* tidied up and documented hbm2ddl package (esp. Ant tasks)
* deprecated CounterGenerator in favor of IncrementGenerator
* improved logging during initialization
* deprecated "vm" in favor of "increment" id generator
Changes in version 2.0 final (8.6.2003)
---------------------------------------
* added "fetch" keyword to HQL
* added evict() methods to SessionFactory for JVM-level cache
* destroy caches from SessionFactory.close()
* fixed an NPE in Session.evict() (Simon Spero)
* added Query.setLockMode()
* tidied up implementation of Loader
* release ResultSets more aggressively
* miscellaneous improvements to some Dialects
* hbm2java now honors the sort attribute (Max Andersen)
* added exceptions to Interceptor interface
* fixed problem with setMaxResults(), setFirstResult() in Oracle (introduced in beta 6)
* fixed some SQL generation that was a problem for Sybase (Dietmar Posselt)
* fixed some problems with ODMG API (Oliver Gries)
* added JOTMTransactionManagerLookup (Low Heng Sin)
* added JOnASTransactionManagerLookup (?)
* fixed a bug in WeblogicTransactionManagerLookup (Mathias Bogaert)
* added Criteria.setFetchMode()
* added new Expressions
* much more elegant/robust handling of quoted identifiers
* renamed Hibernate.association() to Hibernate.entity()
* added dynamic-update and dynamic-insert mapping attributes
* fixed a bug with refresh() of objects with collections
* HQL aliases now optional - "from Cat" now legal
* platform-independant quoting of identifiers using backticks
Changes in version 2.0 beta 6 (10.5.2003)
-----------------------------------------
* fixed a bug querying one-to-many associations to a <joined-subclass>
* added support for dialect-specific LIMIT-style clauses (David White)
* added <idbag>
* fixed bug in hashCode() of persistent collections
* <joined-subclass> now supported in HSQL (Wolfgang Jung)
* fixed problem for XML parsers which ignore default values declared in DTD
* <meta> tags can now be set to not be inheritable
* fixed bug in Expression.in()
* fixed an NPE that could occur from update() in very strange cases (Chris Nockleberg)
* disabled outer-join back to owner when initializing one-to-many (performance improvement)
* fixed a bug in Query.setParameterList() (Nick Heudecker)
* improved JCA support (Igor Fedorenko)
Changes in version 2.0 beta 5 (21.4.2003)
-----------------------------------------
* Informix support (Steve Molitor)
* fixed a bug parsing "select new ... " queries
* deprecated "object" type in favor of <any> mappings
* added Session.contains()
* added extra DBCP config options (Alex Burgel)
* SessionFactory.close() now unbinds from JNDI
* added Session.evict()
* got rid of an unnecessary SQL DELETE issued when an empty collection was dereferenced
* where attribute of collection mappings no longer ignored for deletion
* improved logging
* support polymorphic associations to "embedded" composite id classes
* various bugfixes to collection filter parameter binding
* fixed some problems with proxies introduced in earlier beta versions
* fixed bug with self-reference in the case of identity column id generation
* added hibernate.cglib.use_reflection_optimizer property
* added nonstrict-read-write cache
* fixed an SQL-generation bug in new Criteria API
* added CompositeUserType
* sequence and table id generators now aware of default-schema
* added update and insert attributes to <component> element
* fixed a bug with expressions like elements(foo.bar.baz) in where clause
* more efficient Set initialization (two-phase load)
* removed support for hibernate.query.imports and added <import> mapping element
* fixed problem in DBCP connection validation and added new config properties
* hbm2java can now generate finder methods for persistent objects (experimental) (Matt Hall)
* hbm2java small fixes/refactorings to support generating more than one file per persistent object (Max Andersen)
Changes in version 2.0 beta 4 (22.3.2003)
-----------------------------------------
* Major HQL improvements
- from "Foo as foo join foo.bars as bar" instead of "from foo in class Foo, bar in elements(foo.bars)"
- "select new Foo(bar.name, bar.amount) from ...."
- outer and full join support
* Query methods now return this, to allow chaining
* FrontBase support (Run Lussier)
* experimental JCA support (Daniel Bradby)
* hbm2java now can generate Beans style property events (Klaus Zimmermann)
* support SQL identifiers quoted with []
* fixed bug with PostgreSQL
* name attribute now optional in .cfg.xml
* support for postgres ilike operator (M Lang)
* squash warnings with GNU JAXP (Chris Nockleberg)
* fixed a bug in Query.setParameterList()
* Ingres support (Ian Booth)
* collections now detect changes not made via wrapper for newly saved objects
* new (experimental) Criteria + Expression APIs
* Query.setEntity(), etc, now aware of proxies (also improved hueristics for guessing Type)
* added Hibernate.isInitialized()
* detect changes made directly to newly-wrapped collection (ie. not via the wrapper)
* added Hibernate.refresh(Object, LockMode)
* update(), saveOrUpdate() no longer initialize a proxy
* fixed problems with Sybase
* added force attribute to <discriminator>
* improved handling of null discriminator-value
* support SQL-style '' escape for HQL strings
Changes in version 2.0 beta 3 (24.2.2003)
----------------------------------------
* collections now represent null elements as a missing row
* collections now deserialize correctly (fix for bug in beta 2)
* standardised on dom4j for XML parsing
* fixed bugs in collection caching (an exception occurred for some sorted collections and some kinds of maps)
* allowed null discriminators
* set autocommit to true in SchemaUpdate
* fixed a stack overflow that could occur in toString() of classes created with hbm2java (Max Andersen)
* fixed a bug where composite-element <parent> property was not being set after retrieval from cache
* added where attribute to collection mappings to allow filtering
* fixed a exception that occurred when wrapping collections with sort="MyComparator" (Jason Horne)
* objects with mutable="false" are now never updated
* fixed an exception that occurs with <key-many-to-one> association to a class with a composite id (Stefano Travelli)
* added SchemaExport Ant task (Rong C Ou)
* integrated latest CGLIB release (Juozas Baliuka)
- added support for new CGLIB reflection optimizer (Juozas Baliuka)
* improved query cache algorithm (Who?)
* fixed a bug in "object" type
* Lists and arrays now represent null elements as a missing row
* fixed a bug in Hibernate PreparedStatement cache where maxRows and fetchSize were not cleared before re-caching
* fixed a bug in HibernateService that caused a restart to fail
* added SybaseAnywhereDialect (?)
* added SessionFactory.close()
Changes in version 2.0 beta 2 (2.2.2003)
----------------------------------------
* property column names may now be of any length (Mark Woon)
* fixed problem where CodeGenerator created private get/set pairs (Max Andersen)
* fixed all silly bugs in Configuration.configure()
* efficient collection updates from Session.update()
* added <jcs-class-cache> and <jcs-collection-cache> elements to hibernate-configuration.dtd
* support for normalized mappings for databases with DECODE instead of CASE (Simon Harris)
* added Oracle9Dialect
* added JRun4TransactionManagerLookup (Joseph Bissen)
* fixed JDBCException to keep reference to underlying SQLException
* fixed a bug loading many-to-many associations with a repeated column name
* fixed a bug in ShortType
* added IngresDialect (Ian Booth)
* added --config option to SchemaExport
Changed in version 2.0 beta 1 (28.1.2003)
-----------------------------------------
* renamed packages to net.sf.hibernate.*
* all API methods now wrap SQLExceptions
* removed support for toplevel collections / subcollections
* created hibernate-mapping-2.0.dtd
- renamed 'readonly' attribute to 'inverse'
- renamed 'role' attribute to 'name'
- changed default value for 'unsaved-value' to "null"
- added mandatory 'name' attribute to <param>
- added <meta> tag
* created hibernate-configuration-2.0.dtd
* brand new Configuration API, including exposed mapping package
* completely reworked IdentifierGenerator framework
- built-in generators now auto-detect the type (so integer identity columns are supported, for example)
- parameters are now named
- built-in strategies are renamed
* expanded Interceptor interface
* removed exceptions that occur if an object is saved or deleted multiple times in a session
* added <parent> subelement to <composite-element> and <nested-composite-element>
* collections except for <bag>s now implement by-value equals() and hashCode()
* removed all deprecated methods
* added Session.refresh()
* added dynamic-update functionality
* added update and insert attributes to <property> and <many-to-one> mappings
* added elements(), indices(), size(), maxelement(), minelement(), maxindex(), minindex() collection functions to query language
* huge improvements to CodeGenerator (Max Andersen)
* enhanced outerjoin fetching support in queries
* experimental support for DynaBeans as components
Changes in version 1.2.3 (28.1.2003)
------------------------------------
* fixed a recently-introduced problem with Timestamp dirty checking
* added createClob(), createBlob() for streams (Benoit Menendez)
* SchemaUpdate now configures Dialect correctly (Michael Locher)
* update() now working for classes with embedded composite ids
* unsaved-value attribute now recognized for <composite-id>
* fixed a minor problem where a very specific kind of SQL select did not qualify a column name
* added Query.getQueryString()
* fixed an NPE that sometimes occurred when hibernate.connection.username was not specified
* fixed a bug in SchemaExport where foreign key constraints did not use qualified tablenames
* added isFirst(), isLast() to ScrollableResults
* fixed bug finding properties inherited by mapped interfaces
Changes in version 1.2.1b (4.1.2003)
------------------------------------
* fixed an NPE that occurred while loading Hibernate classes in IBM JVM
* arbitrary JNDI InitialContext properties may now be passed as hibernate.jndi.*
* fixed a problem where index column was not being nullified when an entity was removed from a one-to-many
Changes in version 1.2.1 (31.12.2002)
-------------------------------------
* Changed the MySQL mapping of Hibernate "timestamp" to MySQL "DATETIME" (Matthias Schwinn)
* TransactionManagerLookup classes now define defaut UserTransaction JNDI names
* support for WebSphere 5 (Venkat Srinivasan)
* fixed a bug with query expressions of the form "foo.bar.id" for normalized mappings
* experimental Blob/Clob support (thanks to Benoit Menendez and Mark Woon)
* improvements to SchemaUpdater (Benoit Menendez)
* deprecated suspendFlushes() / resumeFlushes() in favor of FlushMode
* deprecated IDGenerationException in favor of IdentifierGenerationException
* fixed a bug introduced in 1.2 final where cascade save-update was sometimes ignored for readonly="true" bags
* fixed a bug caching null-valued one-to-one associations
* CodeGenerator now supports <bag> and <joined-subclass>
* fixed problem with TimestampType on DB2 (Jonas)
* fixed a bug in generated SQL for collections with <joined-subclass> mappings (Robson Miranda)
* fixed a bug caching Maps (Benoit Menendez)
* SchemaExport now accepts a .jar file as a source of mappings
* hibernate.dbcp.validationQuery setting (Juozas Baliuka)
* hibernate.c3p0.validate setting
* added Query.setTimeout()
* setMaxResults() now behaves sensibly on SAPDB (Russel Smyth)
* added Query.setProperties() and Query.getNamedParameters(), fixed a bug in Query.getReturnTypes()
* CodeGenerator now generates equals() and hashCode() for composite-id classes (and toString() for all classes)
* CodeGenerator now includes superclass properties in subclass constructors (Max Andersen)
* added Hibernate.custom()
Changes in version 1.2 final (7.12.2002)
----------------------------------------
* fixed a bug where uppercase IS NOT NULL, NOT IN, etc were not parsed correctly
* addition to readonly="true" bags now no longer requires collection initialization
* added ResinTransactionManagerLookup (Aapo Laakkonen)
* improved exception message when setting null to primitive type (Max Andersen)
* improved exception message for an unserializable identifier
* support for overloaded setter methods (patch by Alex Staubo)
* CodeGenerator support for <composite-element> (patch by Wolfgang Jung)
Changes in version 1.2 beta 4 (29.11.2002)
------------------------------------------
* fixed bugs in one-to-many associations to a <joined-subclass>
* LockMode class now properly serializable
* exceptions thrown by proxied objects are now propagated correctly (rather than being wrapped)
* made Calendar types compilable in JDK1.2
* added --format and --delimiter options to SchemaExport (thanks to Richard Mixon)
* fix for problem with class with no properties + native id generation + MS SQL Server contributed by Max Andersen
* fixed a BAD bug in Hibernate.configure() (thanks to Rob Stokes)
* CodeGenerator now recognizes <key-many-to-one> (patch by Wolfgang Jung)
* CodeGenerator now recognizes <version> and <timestamp> (patch by Max Andersen)
Changes in version 1.2 beta 3 (26.11.2002)
------------------------------------------
* fixed bug in UPDATE SQL generation for <joined-subclass> mapping strategy (fix by Robson Miranda)
* support <composite-id> correctly in CodeGenerator (patch by Tom Cellucci)
* fixed an exception that occurred with short qualified tablenames
* added the polymorphism attribute to the <class> element
* allow "not between", "not in" in query language
* allow subqueries beginning with a from clause in query language
* query expressions like "not (foo.bar.baz=1)" now translated to "(bar.baz!=1 and foo.bar=bar.id)"
* support for PostgreSQL ~ operator (regular expression match)
* load(id, lockMode) now working for normalized table mappings
* now compiling properly under JDK1.2, 1.3 (fix by Tom Cellucci)
* support for subcollections in query language: foo.bars[2]['index'], foo.bars[4].elements, foo.bars[0].size, etc.
* added calendar and calendar_date types
* find() queries may now return scalar values
* component-type properties may appear in a select clause
* ConnectionProviders now set isolation level before toggle autocommit
* Iterator.next() now throws NoSuchElementException as per Iterator contract (fix by Alex Staubo)
* database reverse engineering GUI tool contributed by Tom Cellucci
* SchemaExport now generates column in mapping file order (rather than alphabetical order)
* <joined-subclass> mappings working on Oracle (?)
Changes in version 1.2 beta 2 (15.11.2002)
------------------------------------------
* support multi-argument SQL functions in queries
* reintroduced deprecated form of update() with slightly altered semantics
* fixed BAD problem in the generated SQL for certain queries
* added OrionTransactionManagerLookup
Changes in version 1.2 beta 1 (11.11.2002)
------------------------------------------
* Fixed a bad bug binding to JNDI with servers that use serialization in preference to getReference()
* support for quoted SQL identifiers (patch by Jean-Francois Nadeau)
* Hibernate.initialize() allows the user to force initialization of a proxy or persistent collection
* fix to minor bug in CodeGenerator by Max Andersen
* fixed a problem with outerjoin fetching of one-to-one associations defined on subclasses
* fixed a minor problem with proxies of classes that override finalize()
* finished work on normalized table mappings using <joined-subclass> declaration (only for databases with ANSI OUTER JOIN and CASE)
* deprecated hibernate-mapping.dtd in favor of hibernate-mapping-1.1.dtd
* reworked unmapped class / interface / table-per-concrete-class query functionality, fixing several problems
* removed deprecated methods
* deprecated findIdentifiers()
* fixed some problems with embedded composite identifiers
* fixed a bug cascading deletes to one-to-one associations
* CodeGenerator now generates isFoo() style getters for boolean properties (patch by Aapo Laakkonen)
* components may now have a nonpublic constructor (patch by Jon Lipsky)
* changes / bugfixes to MapGenerator tool
* experimental SchemaUpdate tool contributed by Christoph Sturm
Changes in version 1.1.8 (30.10.2002)
-------------------------------------
* full support for composite keys in query language
* fixed bug where character type could not be null
* fixed bug parsing collection filters like: "group by this.date"
* fixed a bad bug where C3P0 properties were not always being used
* replaced hibernate.use_jdbc_batch with hibernate.jdbc.batch_size
* renamed some other properties to hibernate.jdbc.*
* made hibernate.show_sql settable from JMX (patch by Matas Veitas)
* added SessionFactory.getAllClassMetadata(), getAllCollectionMetadata (patch by Max Andersen)
* allowed use of concrete-class proxies with inherited classes ie. <subclass name="ConcreteClass" proxy="ConcreteClass">
* HibernateException extends Apache commons lang NestableException (patch by Max Andersen)
* <parent> subelement of <component> allows a component to get a reference back to owning entity
* Query.setParameterList() to bind lists of values to "in (:list)"
* Java constants may now be used in Queries
* serialization of an object graph now removes all initialized proxies
* several other improvements to proxy handling
* proxies may now be used in JDK 1.2
Changes in version 1.1.7 (25.10.2002)
-------------------------------------
* added Session.createFilter()
* fixed a bug parsing queries with properties of form idXXX (introduced in 1.1.6)
* fixed a bug parsing queries with the id property named in the select clause (introduced in 1.1.6)
* fixed a bug dirty checking big_decimal (fix by Andrea Aime)
Changes in version 1.1.6 (24.10.2002)
-------------------------------------
* classes without subclasses may now declare themselves as their own proxy
* outer-join attribute now working for component properties and <many-to-many>
* outer-join="true" will now force outerjoin loading for an association even if associated class has a proxy
* enabled oracle-style outerjoins for SAP DB
* version properties may now be long or short (previously always integer)
* discriminators may now be boolean type
* fixed the foo.bar.id.baz syntax for queries doing composite-key joins
* fixed an NPE that occurred when no Dialect was specified
* CodeGenerator now fully proxy-aware (patch by Max Andersen)
* removed dependency upon trove4j
Changes in version 1.1.5b (20.10.2002)
--------------------------------------
* fixed an NPE that occurred on JMX startup
* smarter fetching for one-to-one associations
Changes in version 1.1.5 (19.10.2002)
-------------------------------------
* added built-in currency and timezone types
* hibernate-mapping-1.1.dtd
- added <index-many-to-many> and <composite-index> subelements of <map>
- added <key-property> and <key-many-to-one>
- renamed "save/update" to "save-update"
- tightened up the dtd (now using enumerated attribute types)
* enabled multi-column map indexes (ie. key of a Map)
* composited-id may now include a many-to-one association
* improvements to Databinder contributed by Brad Clow
* fixed bugs in minIndex, maxIndex, minElement, maxElement
* fixed a problem with JTATransaction in a JBoss BMT bean
* added addMapResource() to the MBean
* minor improvements to Configuration
* more accurate cache entry timestamping to increase the likelihood of cache hits
* JCS cache may now be used with JTATransaction in WebSphere, Weblogic, JBoss (thanks to Matt Baird)
* improvements to CodeGenerator contributed by Andrea Aime
* stopped a TransientObjectException that was being thrown when it shouldn't be
* re-enabled primary key export for tables of sets with not-null elements
* hibernate.statement.fetch_size configuration contributed by Matas Veitas
* added Interceptor application callback interface
* added metadata package to expose persistence metadata to the application
* changed filter() argument type from Collection to Object to allow filtering of arrays and Maps
* added <column> index attribute to allow table indexes to be specified in mapping document
* implemented support for queries against interfaces and abstract superclasses
Changes in version 1.1.4b (4.10.2002)
-------------------------------------
* fixed problems for JDK1.2 (thanks to Chris Webb)
Changes in version 1.1.4 (4.10.2002)
------------------------------------
* New locking API
* disabled 2-phase load for objects contained in Sets (because they should be initialized before equals() or hashCode() is called)
* fixed a bug where non-serializable cache entries could not be cached by JCS auxiliary cache
* fixed a bug in dirty checking PersistentEnums
* deprecated getID() in favor of getIdentifier() (for mainly cosmetic reasons)
* HibernateService may now be subclassed to obtain mapping files by some other mechanism (patch by Chris Winters)
Changes in version 1.1.3 (1.10.2002)
------------------------------------
* new 2-phase loading process (replaces complicated "deferred" loading process)
* new ScrollableResults interface for efficiently navigating Query results
* removed deprecated interfaces
* created engine package to hold "internal" APIs (ie. the external contract of the impl package)
* fixed bug where a component defined before all collections in the mapping file caused collections to not be persisted (thanks to Michael Link)
* fixed a bug where cascaded saveOrUpdate was ignoring the unsaved-value setting
* faster Timestamp dirty checking
Changes in version 1.1.2 (29.9.2002)
------------------------------------
* added persister attibute of class mapping to support custom persistence strategies
* Support for Oracle outerjoins contributed by Jon Lipsky
* Reworked versioning, fixing bugs (and tightening tests)
* Fixed a bug where an ObjectNotFoundException was thrown for null one-to-one associations
* fixed problems with timestamps introduced in 1.1.1
* added batch file for running demo
Changes in version 1.1.1 (27.9.2002)
------------------------------------
* Major refactoring / abstraction of persistence logic
* added maxIndex, minIndex, maxElement, minElement properties for collections
* added support for class names in where clause of queries
* fixed a bug where an association could become null after caching
* fixed a bug where an NPE could occur for a null component
* fixed minor bugs in SortedMap, SortedSet
* object type is now cacheable
* added big_integer type
* improved dirty checking for timestamp type
Changes in version 1.1.0 (22.9.2002)
------------------------------------
* implemented collection indexing with [] in query language
* fixed some minor query-language bugs
Changes in version 1.1 beta 14 (19.9.2002)
------------------------------------------
* bags now implement java.util.List
* delete() may now take a transient object
* bug where sorted collections were not being sorted fixed by Brad Clow
* fixed a bug in many-to-many association filtering
* no longer try to query connection metadata when using user-supplied connections
* added hibernate.use_scrollable_resultsets for user-supplied connections
* fixed a problem where sublists were not being proxied
* fixed a problem where Hibernate could not call methods of package-visibility classes
* removed obsolete select attribute from MapGenerator
* multiple occurrences of same path in a query no longer require multiple joins
* added WrongClassException
Changes in version 1.1 beta 13 (15.9.2002)
------------------------------------------
* added constants to Lifecycle interface
* fix for circular cascade="save/update"
* fixed a bug in cascaded update introduced in version 1.1 beta 11
* added object type
Changes in version 1.1 beta 12 (14.9.2002)
------------------------------------------
* Session.filter() for applying a filter query to collections
* experimental ODMG API (OQL features are not yet compliant)
* new DBCPConnectionProvider for Apache commons-dbcp connection pool
* Session.lock() now does version number check even on databases with no FOR UPDATE clause
* introduced new cascade styles: cascade="save/update", cascade="delete"
* added default-cascade attribute
* foreign key columns lengths now automatically set to primary key column lengths for SchemaExport
* added error checking of row update counts when batching disabled
* major improvements to ProxyGenerator tool
* CodeGenerator now aware of proxy attribute
* integrated PointbaseDialect contributed by Ed Mackenzie
* fix for problem where Proxies were being initialized on identifier access by Christoph Sturm
Changes in version 1.1 beta 11 (7.9.2002)
-----------------------------------------
* deprecated update() in favor of saveOrUpdate() and introduced unsaved-value attribute of <id>
* children mapped with cascade="all" are now always saved/updated even without a call to update(parent)
* support for composite-id classes where the composite id consists of properties of the persistent class
* added constrained attribute to <one-to-one> element
* added Validatable interface
* renamed several config properties (Hibernate issues log warnings for obsolete property usage)
* arbitrary JDBC connection properties may now be passed using hibernate.connection.*
* fixed a classloading bug in C3P0ConnectionProvider (introduced in 1.1 beta 10)
* CodeGenerator may now take multiple mapping files on the commandline
Changes in version 1.1 beta 10 (28.8.2002)
------------------------------------------
* fixed a bug that occurred when calling Session.update() for an object with no properties
* changed class loading to use the context classloader first
* introduced <timestamp> as an alternative to <version>
* added Query.getReturnTypes()
* fixed a bug with composite-elements introduced in 1.1 beta 7
* save() may now be used to persist classes with composite-ids
* improved handling of nanoseconds values in Timestamps
* support for composite id properties + objects in select clause of iterate()
* beefed-up collection tests
Changes in version 1.1 beta 9 (26.8.2002)
-----------------------------------------
* fixed a bug introduced in 1.1 beta 8 that could cause an NPE after deserializing a session with proxies
* deprecated insert() in favor of more flexible save()
* deprecated IDGenerator in favor of new IdentifierGenerator interface
* "assigned" id generator now returns the existing value of the id property instead of throwing an Exception
* fixed a problem where PreparedStatements were not being recached after retrieving a natively generated id
Changes in version 1.1 beta 8 (25.8.2002)
-----------------------------------------
* fixed a bug introduced in 1.1 beta 6 where an updated element of an indexed one-to-many collection caused an SQLException
* uninitialized collections passed to update() may now be initialized in the new Session
* uninitialized proxies passed to update() may now be initialized in the new Session
Changes in version 1.1 beta 7 (23.8.2002)
-----------------------------------------
* fixed a bug where Hibernate was not returning statements to the cache when batch updates were disabled
* fixed a bad bug parsing mappings with toplevel one-to-many associations
* fixed a bug with versioning and subcollections
* reworked Set updates again for much improved efficiency
* schema export now creates primary keys for indexed collection tables
* minor refactor to Type hierarchy
* improved some user-error detection
* fixed foreign key constraint creation for MySQL with Innodb tables
Changes in version 1.1 beta 6b (20.8.2002)
------------------------------------------
* Fixed a problem updating Sets
* added <bag> mapping for java.util.Collection
Changes in version 1.1 beta 6 (20.8.2002)
-----------------------------------------
* completely reworked fetching code
- one-to-many associations now always fetched in a single select
- many-to-many associations fetched in a single select when outerjoin fetching is enabled
- this includes nested outerjoin fetching of the associated class!
- outerjoin fetching for <many-to-one> nested inside <component> or <composite-element>
- code refactored to be cleaner and faster
* removed unnecessary order by clause in List and array fetching SQL
* collections now individually update, insert and delete only rows that changed (thanks to Doug Currie)
* fixed a problem where exceptions were being wrapped in a LazyInitializationException for non-lazy collections
* added order-by attribute to <set> and <map> to specify a table column as defining the iteration order (JDK1.4 only)
* improved error detection in Session.update()
* further usage of JDBC2 batch updates
* some fine-tuning of JDBC2 feature usage configuration
* CodeGenerator will now generate components and arrays
* fixed problem where CodeGenerator could not generate classes in the default package
* improved logging of flush() activity
* renamed property hibernate.use_jdbc2 to hibernate.use_jdbc_batch
Changes in version 1.1 beta 5 (13.8.2002)
-----------------------------------------
* hibernate.query.imports property to allow use of unqualified classnames in queries
* fixed a bug in collection flushing that was introduced in 1.1 beta 4
Changes in version 1.1 beta 4 (11.8.2002)
-----------------------------------------
* JMX integration (thanks to John Urberg)
* "having" clause in query language
Changes in version 1.1 beta 3 (10.8.2002)
-----------------------------------------
* removed the select="all" attribute for <class> mappings - "select distinct" now specified in the hibernate query
* system properties now override hibernate.properties
* Session now flushes changes even less often (only when actual updates to the queried table(s) are waiting)
* fixed a *very* rare problem where an unnecessary update could be accidently issued before a delete
Changes in version 1.1 beta 2 (6.8.2002)
----------------------------------------
* fixed a bug exporting schemas with identity columns
* implemented factory-level caching of collections
* Datastore.storeJar() contributed by Christian Meunier
* added <mapping jar="jarfile"> to hibernate.cfg.xml
Changes in version 1.1 beta 1 (4.8.2002)
----------------------------------------
* new Query API including named parameters, pageable results
* subqueries in Hibernate queries (only for databases that support subselects)
* new DocBook documentation (contributed by Christian Bauer)
* support collections .elements, .indices inside select clause (even in aggregate functions)
* don't load collections before removal unless absolutely necessary
* mutable="false" attribute in <class> element to map immutable classes
* use JDBC batch to insert collection elements if hibernate.use_jdbc2 is set
* brand new PreparedStatementCache
* improvements to MYSQL dialect for long datatypes
* always check isAccessible() before setAccessible(true)
* removed extra unnecessary table join in queries with one-to-many association
* removed ugly "WHERE 1=1" from generated SQL
* fixed exception mapping a class with no properties (fix by Rob Stokes)
* logging enhancements including SQLException logging
* reworked factory-level cache and integrated JCS support (thanks to Christian Meunier)
* fixed a bug with circular references in cached data
* removed blocking cache support
* now rendering outerjoins as "LEFT OUTER JOIN" because "LEFT JOIN" caused problems for some Sybase versions
* added default Hibernate properties to Dialects
* native id generation now falls back to sequence id generation when identity columns not supported by the dialect
* fixed some problems with native id generation under HSQL
* may now use Session.insert() even when using native id generation
Changes in version 1.0.1b (18.7.2002)
-------------------------------------
* fixed a bad bug in query parser when hibernate.query.substitutions was unset
* much improved build.xml Ant script
* latest c3p0.jar
Changes in version 1.0.1 (17.7.2002)
------------------------------------
* enabled use of scalar values and aggregate SQL functions in select clause of iterate() queries
* fixed bug in JNDI lookup for SessionFactory
* changed ordering of SQL inserts/deletes for child collections of a cascade-enabled association
- better behaviour for some not-null constraints
- performance optimization for bidirectional many-to-one associations
* added hibernate.query.substitutions property to allow named query constants (eg. translate 'true' to '1')
* added locale type for java.util.Locale
* added sequence hi/lo generator (seqhilo.long)
* fixed bug where load(), onLoad() callbacks were sometimes called at wrong time
* fixed an exception (fix by Eric Everman) and improved identifier searching in MapGenerator tool
* refactored SerializableType
* extra logging + error handling
* documentation enhancements
Changes in version 0.9.17 (3.7.2002)
------------------------------------
* Added UserType interface
* documented Lifecycle
* added some new trace messages to log
* bugfix to allow SQL functions like upper(), lower(), etc to work on all platforms
* documented SAP DB support (dialect contributed by Brad Clow)
* foreign key constraint export for SAP DB
* map index may be the composite-id of the element class (contributed by Jon Lipsky)
* fixes to CodeGenerator tool (contributed by Uros Jurglic)
Changes in version 0.9.16 (19.6.2002)
------------------------------------
* fixed bug cacheing objects with references to themselves
* support for composite ids of classes with no id property
* may now disable outer join (deep) fetching for an association by setting outer-join="false"
* enabled outer join fetching for one-to-one
* fixed a bug for mappings that specify class attribute of <one-to-many>
* fixed a bug where Hashbelt did not expire cached data in a timely fashion
* fixed a mistake in the mapping DTD
* new user-error check in update()
Changes in version 0.9.15 (15.6.2002)
------------------------------------
* one-to-one associations
* support for "tricky" mappings in SchemaExport tool (multiple properties to one column, etc)
* Transaction API contributed by Anton van Straaten
* SessionFactory may be bound to JNDI name by setting hibernate.session_factory_name
* Sessions are now Serializable!
* added Session.findIdentifiers() query methods
* new Lifecycle interface to replace deprecated PersistentLifecycle
* fixed problem where session did not autoflush on iterate() queries
* performance enhancements to collection dirty checking
* added Hibernate.configure() and configuration file format
* removed some deprecated methods
* refactored Type hierarchy
* query language identifiers now case sensitive (bugfix for case sensitive SQL dialects)
* username/password now optional for datasource (contributed by Emmanuel Bourg)
* much improved API documentation
* binary types now saved using streams if hibernate.use_streams_for_binary=true (contributed by Jon Lipsky)
* MySQL Strings now mapped to TEXT columns if length > 255 (contributed by Christoph Beck)
Changes in version 0.9.14 (4.6.2002)
-------------------------------------
* lifecycle objects - properties now have a cascade attribute to cascade save, update, delete
* composite id properties may now be used in queries eg. foo.id.bar (contributed by Jon Lipsky)
* slightly changed semantics of update() so it now also save()s new transient instances
* Session now flushes() itself less often before query execution (performance enhancement)
* fixed problem where Session.save() returned null instead of the natively generated id
* fixed bug with object identity for cached classes
* fixed bug where delete(x) could not be called after update(x)
* MUCH improved Exception hierarchy
* deprecated create()
* added sql-type attribute to <column> tag to allow user to override default type mapping
* deeper fetching with use_outer_join
* new ConnectionProvider framework
* fixed a bug where blocking cache could return stale data
* now working again in JDK1.2.2
* fixed problem with not-null associations + native key generation
* minor changes to PersistentLifecycle interface
* initial, minimal version of new Transaction mechanism
* MUCH improved documentation
Changes in version 0.9.13 (25.5.2002)
-------------------------------------
* Datastore.storeResource() to load mapping files from classpath
* fixed a problem executing under JDK1.3 when compiled from JDK1.4
* documentation improvements
Changes in version 0.9.12 (24.5.2002)
------------------------------------
* Session.update() methods to update a persistent instance from transient copy (as requested by many users)
* discriminator column name, type, length, etc now configurable by <discriminator> tag in mapping file
* discriminator column values configurable by discriminator-value attribute of <class> and <subclass> tags
* added Session.insert(object, id) for classes with no identifier property
* fixed another bad bug with connection handling (fix by Anton van Straaten)
* fixed a problem with deferred loading
* fixed a problem with sorted collections (fix by Anton van Straaten)
* nested collections of objects now require 2 SQL SELECTs to load, rather than size+1
* session is NO LONGER atomic - application should discard session when exception occurs
* fixed problem where character type was mapped to VARCHAR column
* arrays of proxies now possible by using new element-class attribute of <array> tag
* fixed various problems with proxies
* added proxy generation tool
* proxy unit tests
* replaced two RuntimeExceptions with checked exceptions
* made hibernate.username/hibernate.password optional for DriverManager
* CodeGenerator now supports all hibernate basic types
* much improved caching algorithm for compiled queries
* may now specify properties simply by placing hibernate.properties in classpath
* documentation improvements + fixes
* --abstract switch to MapGenerator (contributed by Eric Everman)
Changes in version 0.9.11 (12.5.2002)
------------------------------------
* fixed major bug with connection handling (fix by Anton van Straaten)
Changes in version 0.9.10 (11.5.2002)
------------------------------------
* set a default schema name using SessionFactory property hibernate.default_schema
* code generator tool contributed by Brad Clow (www.workingmouse.com)
* lazy object initialization under JDK 1.3 and above
* fixed some error messages to go to logging framework, not stdout
* new system property hibernate.show_sql=true logs all executed SQL to stdout
* integration of bugfixes in c3p0
* wrap IllegalArgumentExceptions in HibernateExceptions
* added ObjectNotFoundException and StaleObjectStateException
* fixed a bug when using schemas
* new caching strategy (and documented cache feature)
Changes in version 0.9.9 (25.4.2002)
-----------------------------------
* sorted sets and maps (thanks to Doug Currie)
* mapping files may now be loaded using getResourceAsStream() (thanks to Markus Meissner)
* hibernate messages now logged by Apache commons-logging
* default hi/lo generator table now has column named "next_id", instead of "next"
* query language may now refer to identifier property name (eg. foo.fooKey as alternative to foo.id)
* hibernate.jndi_class, hibernate.jndi_url now optional when using datasource
* hibernate now throws an exception if you try to persist an object with a reference to a transient object
* improved connection pooling algorithm (hibernate.pool_size limits pooled conections)
* very experimental integration of c3p0 JDBC connection pool (http://sourceforge.net/projects/c3p0)
* now compiles under JDK 1.2.2
* fixed bug persisting null components
* fixed bug where cached prepared statements were not cleaned up after disconnect() session
* fixed a null pointer exception in MappingByReflection
Changes in version 0.9.8 (13.3.2002)
-----------------------------------
* supports database native key generation in Sybase, MS SQL, MySQL, DB2, Hypersonic (contributed by Christoph Sturm)
* supports Mckoi (dialect contributed by Doug Currie)
* supports Progress (dialect contributed by Phillip Baird)
* added exceptions to catch Session reentrancy from PersistentLifecycle.load() + store()
* experimental cross-transaction cache
* Session.lock() and Session.loadWithLock() for pessimistic locking
* HiLoGenerators may now use their own DriverManager connection properties + may now use same table across diff mapping files
* Session.flush(), Session.close() and Session.connection() replace Session.commit(), Session.cancel()
* Session.disconnect() and Session.reconnect() for long transactions
* added single JVM id generators vm.long, vm.hex
* added unique column constraints to mappings
* extensions to IDGenerator framework
* support sequence-style ID generation in Oracle, PostgreSQL, DB2, Interbase
* fixed problem where subcollections of a collection that changed roles would be deleted
* changed class loading strategy to be compatible with JBoss
* stopped queries retrieving unnecessary columns
* mutable types (binary + serializable) now always detected as dirty
Changes in version 0.9.7 (26.2.2002)
-----------------------------------
* save() now safe from foreign key violations (so create() is no longer preferred method of adding data)
* delete() now completely safe from foreign key violations - it no longer matters what order objects are deleted in
* removed Session.copy()
* hilo generators now NOT for use with application server datasources
* fixed two intermittent bugs in queries
* fixed a problem where components not detected as dirty
* fixed broken hilo generator which was not updating database
* fixed a minor bug when hibernate.use_outer_join was set
Changes in version 0.9.6 (24.2.2002)
-----------------------------------
* experimental XML generation
* added support for bi-directional associations (one-to-set, set-to-set) with <set readonly="true"> config
* reflective generation of mappings tool was contributed by Doug Currie
* Session operations now atomic, so exceptions are recoverable
* made ID properties optional in persistent classes
* support for multiple schemas through schema attribute of <hibernate-mapping>, <class>, <set>, <map>, etc.
* auto-creation of tables for hilo id generators (restriction: cannot use same table from more than one mapping file)
* added some more assertions to catch user "mistakes" like deleting transient or saving persistent objects
* major rework of collections and fixed some bad bugs
* lazy initialization re-enabled for one-to-many associations (thanks to Georg Schneemayer)
* fixed a problem in the mapping DTD to allow nested components in collections
* fixed a BAD bug in RelationalDatabaseSession when loading objects with PersistentLifecycle callbacks (thanks to Paul Szego)
* fixed problems with quoted strings in query language
* fixed a bug where a stack overflow occurred instead of HibernateException thrown (thanks to Georg Schneemayer)
* fixed a bug deleting updated versioned data
* fixed some problems with name generation for indexes + foreign keys
* fixed problem in Sun JDK 1.4 (only?) where IllegalArgumentException was not handled
* minor improvements to handling of dates and times
* HiLoGenerator now safe for all transaction isolation levels + safe when rollback occurs
* noticed and fixed obscure piece of nonthreadsafe code outside of core persistence engine
* removed unnecessary drop constraints for some dialects
* MUCH more comprehensive test suite
* changed some terminology used in documentation
* added javadoc for API classes
* commented the mapping DTD
Changes in version 0.9.5 (8.2.2002)
-----------------------------------
* supports HypersonicSQL (dialect contributed by Phillip Baird)
* supports Microsoft SQL server (with third party JDBC driver)
* proper command-line tool for schema generation and export
* deprecated the interface cirrus.hibernate.Persistent (due to popular demand)
* changes to hibernate-mapping DTD (required to support optional Persistent interface):
- deprecated <property type="package.PersistentClassName"/> in favor of <many-to-one class="package.PersistentClassName"/>
- deprecated <element type="package.PersistentClassName"/> in favor of <many-to-many class="package.PersistentClassName"/>
- deprecated <property role="..."/> in favor of <collection role="..."/>
- deprecated <element role=".."/> in favor of <subcollection role="..."/>
- deprecated <association> in favor of <one-to-many>
* class attribute optional in <component> and <composite-id> tags (determined by reflection)
* querying components of components now supported
* one-shot table creation (no use of unportable "alter table")
* time dataype support
* reflective mappings of java.sql.Time, java.sql.Timestamp, java.sql.Date
* fixed error msg thrown when class is missing a method but has a superclass
* property names now conform to JavaBean spec ("foo" instead of "Foo"). Note that "Foo" still works
* constructors of persistent classes may now be non-public
* collection indexes now mapped to not-null columns
* fixed obscure bug with querying collections inside components of components
* fixed potential bug related to cacheing of compiled queries
* major rewrite of code relating to O-R mappings
* Session.copy() and Session.equals() as convenience for users
* fixed repeated invocations of hasNext() on iterator + iterators now always work with distinct SQL resultsets
* McKoi dialect was contributed by Gabe Hicks
Changes in version 0.9.4 (29.1.2002)
------------------------------------
* fixed BAD bug where XML parsing would not work for parsers other than Xerces - thanks to Christian Winkler
* added some more assertions to catch user "mistakes" like changing ids or reusing existing ids
Changes in version 0.9.3 (27.1.2002)
------------------------------------
* repackaged (corrupted DatasourceConnectionProvider.class)
* better exception reporting using datasource
* added Datastore.storeClass() which looks for mapping file in classpath (class foo.Bar -> foo/Bar.hbm.xml)
* improved documentation
Changes in version 0.9.2 (25.1.2002)
------------------------------------
* iterate over query results (lazy instantiation of query results)
* added "select foo, bar" style queries returning multiple objects per row
* delete by query
* composite key support
* outer joins for faster (?) loading of associated objects ( set "hibernate.use_outer_join" to "true" )
* connection pooling when using DriverManager
* foreign key constraint from unkeyed collection table to owner entity table
* improved drop tables script execution (still not infallible)
* added <composite-element> tag
* added not-null properties and elements
* added an optimisation for dates and components
* made some XML attributes optional
* fixed errors in documentation + documented some extra features
* bugfix: store() not getting called on lifecycle interface
* bugfix: schema generation for indexed associations
* added many tests
Changes in version 0.9.1 (20.1.2002)
------------------------------------
Too many to list
version 0.8.1
-------------
Initial alpha version