HIBERNATE  |  Register  | 
      SEARCH: 
   
News 
Features 
Documentation 
   Related Projects 
   External Documentation 
Download 
Forum & Mailinglists 
Support 
JIRA Issue Tracking
Wiki Community Area


JBoss.org



middlegen

JIRA Issue Tracking




      
Documentation > Community Area > Road Map

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)

  • New Example queries
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
      

coWiki web collaboration