|
|
|
Road Map
Hibernate 2.0.2 (DONE)
- Orphan delete for <one-to-many> associations using cascade="all-delete-orphan"
- support for "calculated properties" <property name="foo" formula="bar * baz"/>
- where attribute for <class> mappings
- support for subselects and functions in SQL fragments: where, order-by, formula attibutes
- bugfixes (quite a few)
Hibernate 2.1 beta 1 (DONE)
- support for native SQL queries
Query q = session.createSQLQuery(
"SELECT {person.*} FROM PERSON {person} WHERE ROWNUM<10",
"person",
Person.class
);
- support for collections of "value" type in HQL from clause
- so we can query composite-elements
- so we can FETCH collections of value type
- "batch" reads (ie. load a batch of entities or collections by specifying multiple ids)
<set name="foos" batch-size="10" ... >
<class name="Foo" batch-size="10" ... >
- HQL index() function to provide access to the index of an object in a many-to-one association or collection of values
select order.id, index(orderItem), orderItem.id from Order order join order.items orderItem
from Order order join order.items orderItem where index(orderItem) = 0
- support for dialect-specific SQL functions in the HQL select clause.
- one-to-one associations to unique keys other than the primary key
<one-to-one name="employee" class="Employee" property-ref="person"/>
- outer-join attribute for collection mappings, allowing collections of values and one-to-many associations to be fetched by outerjoining for a load() or Criteria query.
<set name="children" outer-join="true">
<key column="PARENT"/>
<one-to-many class="Child"/>
</set>
Hibernate 2.1 beta 2 (DONE)
- Full Criteria query API, with support for associations.
session.createCriteria(Cat.class)
.setMaxResults(10)
.setFetchMode("mate", FetchMode.EAGER)
.createCriteria("kittens")
.add( Expression.like("name", "I%") )
.list();
- deprecation of <jcs-cache> element, in favor of cache config in hibernate.cfg.xml
<cache class="Foo" strategy="nonstrict-read-write"/>
- support for cache plugins, via CacheProvider interface (includes support for Tangosol Coherence cache).
hibernate.cache.provider_class=net.sf.hibernate.cache.CoherenceCacheProvider
- more aggressive caching (cache on update, instead of invalidate)
- support for passing a transient object to Session.lock()
- to allow initialization of associations, eg.
if ( !Hibernate.isInitialized( foo.getBars()) ) session.lock(foo, LockMode.NONE);
Iterator iter = foo.getBars().iterator();
- to allow version checking, eg.
session.lock(foo, LockMode.READ);
- Hibernate.close(Iterator) to allow more aggressive closing of resources
Hibernate 2.1 beta 3 (DONE)
List similarCats = session.createCriteria(Cat.class)
.add( Example.create(cat) )
.list();
- select-before-update attribute to allow cascade update() to interact better with triggers
- property-ref attribute for <many-to-one>
- new, lightweight HashtableCacheProvider
- added Session.get(), a variation of load() which returns null instead of throwing ObjectNotFoundException.
Hibernate 2.1 beta 4 (DONE)
- added optimistic-lock attribute to allow locking on all or dirty properties, as alternative to the default version. This is only available when dynamic-update="true".
- Added query caching functionality, using Query.setCacheable(true)
- Added Session.replicate()
- Added ScrollableResults.setRowNumber()/getRowNumber()
- Added Criteria.returnMaps()
- Added property access strategies, including access="field" for direct field access, bypassing the get/set pair.
- Added query cache and Query.setCacheable()
Hibernate 2.1 beta 5 (DONE)
- named native SQL queries defined in mapping file
<sql-query name="mySqlQuery">
<return alias="person" class="eg.Person"/>
SELECT {person}.NAME AS {person.name}, {person}.AGE AS {person.age}, {person}.SEX AS {person.sex}
FROM PERSON {person} WHERE {person}.NAME LIKE 'Hiber%'
</sql-query>
- integration of OSCache and SwarmCache
- support for custom CollectionPersister implementations.
Hibernate 2.1 beta 6 (DONE)
- support for multiple named query cache regions using Query.setCacheRegion()
- replaced <dynabean> mappings with <dynamic-component>
Hibernate 2.1 final (DONE?)
- Add Session.saveOrUpdateCopy()
- Integrate JBoss TreeCache
- unsaved-value attribute for <version> and <timestamp>
- Addded Session.cancelQuery()
- clean up configuration-time metamodel to allow the user to manipulate mappings at runtime
- support for formula properties in HQL queries
Hibernate 2.2
- refactor Hibernate to allow many more extension points, including addition of a full event API
- introduction of <join> element, for mappings like
<class name="A" table="A" discriminator-value="A">
<id name="id" column="id">
<generator class="uuid.hex"/>
</id>
<discriminator column="discr" type="character"/>
<property name="a"/>
<join table="A1">
<key column="id"/>
<property name="a1"/>
<property name="a2"/>
</join>
<subclass name="B" discriminator-value="B">
<property name="b"/>
<join table="B1">
<key column="id"/>
<property name="b1"/>
</join>
<join table="B2">
<key column="id"/>
<property name="b2"/
</join>
</subclass>
<subclass name="C" discriminator-value="C">
<join table="C">
<key column="id"/>
<property name="c1"/>
<property name="c2"/>
</join>
</subclass>
</class>
- introduction of <sequential-read> element
- mature JCA implementation
|
|
|
|