| 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 |
| |