Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Please add any relevant technologies and some information about them!

Data persistence / query

  • [ Hibernate|http://www.hibernate.org/]

Hibernate gives you transparent persistence for Plain Old Java Objects. 'Transparent' here refers to the fact that it works through it's own session objects - you don't have to change a line of your java code to make a class persistent. There are all sorts of developments afoot with respect to queries in hibernate, but the basic mechanism is to use Hibernate Query Language, a minimal modification of SQL to make it more objecty. It can make navigating persistent object graphs very much easier. e.g. "Find me bitstreams of type 'application/pdf' on Items submitted by 'Fred loggs'" would be something like this is HQL: -

Panel

select b from itstream b where b.format.MIMEType='application/pdf' and b.item.submitter.name='Fred loggs';

I don't like to think what it would be in SQL. You can also deal with graphs of objects without worrying too much - hibernate can cascade updates and maintain one-to-many and many-to-many relationships: -

Panel

Item i = new Item();
i.setOwner(context.getEPerson());
i.addCollection(coll1);
hibernateSession.save(info);

  • [ iBatis (Data Mapper Framework)|http://ibatis.apache.org/]
    iBatis is able to work with any existing database model: the translation between POJO classes and SQL requests is parameterized in external XML files. iBatis could be used right away without changing the current database structure and would ease a lot adding new tables / functions to the DSpace application. Changes to source code could be systematic and straightforward. iBatis is also compatible with .NET and Ruby. I will experiment on this by adding a subject mapping tool to DSpace search interface: I will report on this and this could be discussed further then. Christophe.Dupriez 12:53, 23 April 2007 (EDT)

Metadata serialisation format

Modularity