HIBERNATE JBoss.org
 |  Register  | 
     
News 
About 
   Feature List 
   Road Map 
Documentation 
   Related Projects 
   External Documentation 
Download 
Forum & Mailinglists 
Support & Training 
JIRA Issue Tracking
Wiki Community Area


Hibernate Public Training Courses


Get Hibernate in Action eBook!


JavaWorld 2003 Finalist


Jolt Award 2004 Winner
      
Documentation > Community Area > Who Uses Hibernate?

Who Uses Hibernate?

The information provided below is an acknowledgement from actual developers that Hibernate was used on the projects/applications listed. This information should not be construed as a formal endorsement or backing by the company mentioned. We provide this information because we believe Hibernate to be a solid product and would like to see it continue to grow and gather momentum within the Java community. Developer email addresses can be optionally provided and those wishing can contact them directly. However, support type questions should be posted to the Hibernate forum and said developers are under no obligation to answer support or any other request. Click Edit in the top right corner to add your project.

If you don't want to give your full project details, you can add only anonymous technical information to this page. Thanks for your contribution!


Company name, Location: Argus Serveis Telematics (www.argus.es), Barcelona, Europe

Hibernate versions used: 2.1.4

Overall rating of Hibernate: It's the better persistence framework we ever tried

Short description about project or app: Our app is a kind of framework for easy intranet design. It includes many features like workflows, users, content edition and all the application objects are persisted using hibernate.

Product or App challenges: There can be a huge number of objects with complex relations and it could be dificult to implement it's persistence in a effecient way .

Why Hibernate was selected, what were the other options considered: Before I entered the project the application used JDO for it's persistence but it had several problems related to foreign keys and efficiency . I evaluated several options and finally I decided to switch all app's persistence to hibernate . We choosen hibernate mainly because it performed well and it has huge and very active developer and user comunity.

Names and emails of developers who were involved with Hibernate coding: Dave Garcia System Development engineer daveg@argus.es.

Development & production environment (IDE, App Server, DB): Development & Production (JBoss 3.2.3, JVM BlackDown 1.4.1 Mysql 4.0.x , RedHat Linux 9.0 )

How was Hibernate introduce (prototype written, full bore, limited, etc..):

Full integration, the whole system was migrated when we released a new version of our software and we created some migration process for switching previous versions from JDO to Hibernate automatically.

Length of learning curve to fully understand: More or less 2 weeks for understanding the new framework and to decide how to make the change and about 2 months to release a new stable version working 100% with hibernate.

Most significant problem or issue faced: Migration from JDO to hibernate because I had to change as less code as possible so we had to make some tricks for get it working ;). After this I had some trouble using lazy instantiation using Jboss' datasources as our database connection pooling (because there was a weird problem when the connections where returned to the pool but the object SessionImpl from hibernate's code thought that the connection was still opened... )so I had to switch to c3p0 and the problem was solved inmediatelly.


Company name, Location: AT&T Labs, Tampa, Florida

Hibernate versions used: 1.2.3 and 2.0.1

Overall rating of Hibernate: Our experience with Hibernate has been excellent. We could not be happier with it.

Short description about project or app: The Global Billing Platform is one of the many billing systems running to support AT&T. Our particular group developed 2 applications under the GBP umbrella, a web interface for Managed Network Services account set up and XML interface to the core GBP. The XML interface is used by other (order entry) systems to set up customer accounts.

Product or App challenges: Lots of existing Java code and database tables to integrate with. Hibernate developers had no control over db tables and in most cases the tables were shared by other systems. Almost all the identifiers for the Hibernate persistent objects had to use composite keys.

Why Hibernate was selected, what were the other options considered: An evaluation was completed on various persistence technologies including Cocobase, Toplink, Object Relational Bridge, VBSF, LiDO JDO, Frontier Suite, JDX, Castor and Hibernate. The finalists were Toplink, ORB and Hibernate. Hibernate was chosen mainly because a) seemed easier to understand/use and b) is happy to let you pass it the connection.

Names and emails of developers who were involved with Hibernate coding: Jeff Boring, independent consultant, jwboring@tampabay.rr.com, Kevin Fay, independent consultant, kfay_99@yahoo.com

Development & production environment (IDE, App Server, DB): Development (WSAD on Windows 2000), Production (WebSphere v3.5.3, DB2 UDB v7.2 on OS/390)

How was Hibernate introduce (prototype written, full bore, limited, etc..): Hibernate was introduced slowly into the legacy application. First, it was use to de/hydrate new business objects that had no relationships to others. Then as we learned more and came up with a stable design, Hibernate replaced the existing JDBC code for business objects included in the project. Note that wholesale replacement of JDBC could not take place because of cost. We had to have a persistence technology that could be phased in and could live in a mixed persistence environment.

Length of learning curve to fully understand: About 6 months to fully understand all the nuances involved. Note that much of the learning curve was due to the ORM approach, which was new to us and figuring out the mixed persistence design.

Most significant problem or issue faced: Composite keys caused some troubles because cascading. This was mainly due to Hibernate living in the mixed environment along side the older JDBC homegrown framework. Advice on composite keys, do not forget to code hashCode and equals methods. Lifecycle of session was another issue that we struggled with some. By lifecycle of session I mean when to open and when to close. We finally came to the conclusion that session and logical transaction (use case) are the same thing. We also had some batch Java jobs that required persistent objects to be passed from one session to another that complicated the issue. Cascading and unsaved-value also presented some confusion but things calmed down once we got the v2 manual and read about interceptor.


Company name, Location: JTeam, Amsterdam, The Netherlands

Hibernate versions used: 0.9.x, 1.1.x , 1.2.x and 2.0.x

Overall rating of Hibernate: Good stuff, very intuitive to use, We tried several other O/R mappers including Castor and Toplink but found Hibernate to have the most comprehensible API and mapping structure. It also ties in nicely with JBoss which we use for almost all our products through the JMX beans (and more recently the JCA interface but we haven't tried that one out yet).

Short description about project or app: We have currently one app in production with the 1.2.3 version of Hibernate and currently building two more with the current version (2.0.2). The one in production is an e-commerce site annex marketplace that targets employees of (medium to large sized) companies and provides them with services like dry-cleaning and groceries that they can have delivered either to their house or at a servicedesk located at their company. The application serves companies nationwide (and later pan-european) but the actual services and/or goods are provided by local merchants. The application mediates between the buyers and the suppliers and the company gets a cut of each transaction.

Product or App challenges: Scalability and extensibility was considered to be really important, the app was developed in an extreme programming style so the datamodel was quite dynamic. The app features a (secure) web-based interface as well as a (webstart based) Swing interface(s) to manage the system.

Why Hibernate was selected, what were the other options considered:

Hibernate was selected because refactoring of the datamodel was quite easy with Hibernate. We could integrate the ant tasks to create the database tables from the mapping files into our (automated) build environment so the database is always in sync with the objects. The API is pretty mature and easy to understand. Mind you, we don't use features such as JCS caching and proxies - we did use lazy loading though.

Names and emails (optional) of developers who were involved with Hibernate coding:

Joost van de Wijgerd : joost@jteam.nl a.o.

Development & production environment (IDE, App Server, DB):

JBoss 3.2.x, Oracle 9i, MySQL 4.0.13 (for our new projects), JIBE build environment (provides structured environment for unit testing and continuous intergration, based on a version that was open sourced under jibe.sourceforge.net) Eclipse and IntelliJ IDE's

How was Hibernate introduced (prototype written, full bore, limited, etc..):

Tried it out in a prototype application, then decided to intergrate it into our j2ee application development framework.

Length of learning curve to fully understand:

couple of weeks (to understand the bits that we actually need)

Most significant problem or issue faced:

Structuring the object graph in the right way and using lazy-loading on strategic places to avoid loading too many objects...


Company name, Location: 1Genia, Paris, France

Hibernate versions used: 2.0.x

Overall rating of Hibernate: Excellent product. Non-intrusive, fast, intuitive and reliable. Cuts down development and maintenance costs, and can live in a mixed-persistence environment. Moreover, useful features seem to be added every day. (the all-delete-orphan option for example)

Short description about project or app: The application is a Content Management System which was previously DAO-based. Hibernate was used to persist new classes and to slowly get rid of the old DAO architecture

Product or App challenges: The Application had no particular challenges, apart from legacy SQL code. The real challenge was to really delve into the ORM approach, which was new to us.

Why Hibernate was selected, what were the other options considered: Hibernate was selected for its ease of use and for its non-intrusive behaviour. Plus we liked the logo ;-)

Names and emails (optional) of developers who were involved with Hibernate coding:

Development & production environment (IDE, App Server, DB): Eclipse, Tomcat 4.1, mySQL 3.23 and MS SQLServer

How was Hibernate introduced (prototype written, full bore, limited, etc..): First, Hibernate was used by an intern who was in charge of adding a subsystem to the application. Then it was decided to propagate Hibernate to every new subsystem. The system is currently (for cost reasons) still in mixed-persistence environment, but plans are made to get the app "100% Hibernate" by the end of the year.

Length of learning curve to fully understand: 3 to 4 months. Might depend on previous experiences with database design. Again, most of the time was spent to fully understand the ORM approach.

Most significant problem or issue faced: None that are really relevant (bugs, mistakes in descriptors and collection mapping understanding), because by reading the docs we got all the information needed to do the job (the Parent-Child explanation is a must read, by the way).


Company name, Location: TDC Internet, Warsaw, Poland

Hibernate versions used: current CVS version (2.0 branch)

Overall rating of Hibernate: Very good software. Easy to use and to understand. For most of the time it "just worked". The only missing thing is a mapping generator for MySQL that can also convert foreign keys constraints into lists.

Short description about project or app: CORBA based service management and billing system. The project has been writen from scrach and Hibernate has been used from the beginning.

Product or App challenges: The application is a central part on our new architecture and it should be robust and fast.

Why Hibernate was selected, what were the other options considered:

We've performed a survey of available mapping software and after removing alpha-stage software, software with that didn't work as we wanted it to, software with small or inactive community, software with weak documentation, we had only 2-3 candidates and we wrote some test code in them. And it quickly turned out that Hibernate was easiest to work with.

Names and emails (optional) of developers who were involved with Hibernate coding:

Krzysztof Dabrowski (brush at elysium dot pl)

Development & production environment (IDE, App Server, DB):

Development: Eclipse, MySQL 4.x, Tomcat/Resin

Deployment: MySQL 4.x, Resin

How was Hibernate introduced (prototype written, full bore, limited, etc..):

Hibernate was introducted from the beginning of the project.

Length of learning curve to fully understand:

2-3 weeks to get everything working smoothly.

Most significant problem or issue faced:

Exception handling. You have to catch Hibernate exception all over the code and perform rollback/commit etc. This adds a lot to the code. A lot of our Corba methods consist of 2-3 lines that actually do some work and the rest was devoted to properly opening/closing sessions/transactions.

Lack of a good mapping generator that takes foreign keys into account.


Company name, Location: PriceWaterhouseCoopers, Tampa, Florida

Hibernate versions used: 2.0.1

Overall rating of Hibernate: Beautifully elegant framework that saves countless hours of development time by providing a solid API for object-relational persistence combined with great documentation and a highly involved project leader.

Short description about project or app: Content aggregation and dissemination platform that provides third party research data to various portal applications in the PwC enterprise.

Product or App challenges: Agility and speed comprise the primary challenges faced.

Why Hibernate was selected, what were the other options considered: Various OR tools such as Apache Torque and Castor JDO were evaluated along with Hibernate. Hibernate was selected for it's mature API, strong developer community and easily understood architecture. Integration with XDoclet and AndroMDA was also a consideration, although we've chosen not to walk that path, instead making heavy use of the hbm2java tool. Another benefit we're not currently making use of is Hibernate's ability to persist POJO's without making runtime bytecode modifications or any other state changes to the objects.

Names and emails (optional) of developers who were involved with Hibernate coding: Jason Stiefel (jason.s.stiefel@us.pwc.com, jason@methomedia.com)

Development & production environment (IDE, App Server, DB): IntelliJ IDEA (making use of the HibernateTOOLS IDEA Plugin) Weblogic 7.0 and Oracle 8i.

How was Hibernate introduced (prototype written, full bore, limited, etc..): We started with a simple web-app prototype to get a feel for the API, then continued into the project development using Hibernate to persist our model. The model itself was developed with Hibernate in mind (i.e. Object oriented entity model instead of a traditional relational model.)

Length of learning curve to fully understand: Very short compared to the learning curve involved with using CMP or BMP on a new version of weblogic.

Most significant problem or issue faced: Reading the forums brought resolution to all the critical questions, and the unanswered questions help to prevent the scope from creeping :-)


Company name, Location: 2Fi Business Solutions Ltd., Hong Kong

Hibernate versions used: Hibernate 1.2.x, 2.0.x

Overall rating of Hibernate: Simply cool.

Short description about project or app: a Knowledge management platform combining open source software currently available in different aspects.

Product or App challenges: Programmers are new to the J2EE platform; however they are equipped with basic OO knowledge learnt in school. It is also decided that no scriptlet are allowed in JSP views, and that the concatenation of SQL statements have to be reduced to minimum or none, a way to let programmers speak directly Java objects and OO concepts is required.

Why Hibernate was selected, what were the other options considered: Entity EJB is too difficult to learn, hard to implement, with lots of overheads and restrictions which can break the basic OO concepts of polymorphism and inheritance. The JDO solution failed soon after a mature open source JDO product is not easily available, so we come to the OR mapping solution. Along with OJB, Castor JDO we finally decided to go with Hibernate because of a bunch of easily accessible docs, and a friendly community willing to help newbies out.

Names and emails (optional) of developers who were involved with Hibernate coding: Raymond Lai, alpha2_valen at yahoo dot com

Development & production environment (IDE, App Server, DB): jEdit, Editplus, JBoss 3.2, MySQL 4.0

How was Hibernate introduced (prototype written, full bore, limited, etc..): Prototype is written with the help of docs on the web site and the forum on SF. Most notably the docs of integrating Hibernate with JBoss and the ThreadLocalSession pattern.

Length of learning curve to fully understand: Short, around half a month or so. After some problems with mapping object members in XML during the beginning the programmers need not to worry about what's happening behind - they just have to know they are talking to Java objects; and they are happily working with Hibernate's query language, too.

Most significant problem or issue faced: make Hibernate to decide that the incoming object needs to be persisted/ updated. This mostly deal with the id field in the mapping and the unsaved-value attribute. But this just happened at the beginning - we have managed to work it out with the help of the people at SF forum.


Company name, Location: Intrasoft International, Belgium, Brussels

Hibernate versions used: 2.0.2, testing with 2.1

Overall rating of Hibernate: High performance, very stable and great documentation.

Short description about project or app: Application for the European Commission (DG REGIO) to track auditors and generate documents.

Product or App challenges: Very short development cycle (3 months), high performance, Weblogic 8.1 deployment.

Why Hibernate was selected, what were the other options considered: Mainly the easy for the development team (use of POJO's and XDoclet). No container needed (runs as plain war), very performant, multiple database support (HQL for development, Oracle for production).

Names and emails (optional) of developers who were involved with Hibernate coding: Mathias Bogaert (pathos@pandora.be)

Development & production environment (IDE, App Server, DB): IntelliJ IDEA, Weblogic 8.1, Oracle 9.2

How was Hibernate introduced (prototype written, full bore, limited, etc..): Prototype was written.

Length of learning curve to fully understand: Very easy to learn and understand when using XDoclet.

Most significant problem or issue faced: Getting many-to-many and parent-child with all-delete-orphan working correctly.


Company name, Location: Burgerweeshuis, Netherlands, Deventer

Hibernate versions used: 2.0.x

Overall rating of Hibernate: Excelent. Very nice to be able to work with lazy loading without having to program with interfaces for the data objects.

Short description about project or app: Public website for culture platform with a custom content management interface. Furthermore the website has a reservations module that is used by several other dutch culture platforms.

Product or App challenges: Short development cycle (6 months in spare time), high robusteness.

Why Hibernate was selected, what were the other options considered: For its robusteness (after some bad experience with another persistence engine) and fast development. Served as a test case for daytime projects. Initially used XDoclet, which was dropped at a later stage as it did not added much to the ease of Development.

Names and emails (optional) of developers who were involved with Hibernate coding: Eelco Hillenius (eelco.hillenius at topicus.nl)

Development & production environment (IDE, App Server, DB): Eclipse, Resin 2.1 with Apache 2, MySQL 4.0

How was Hibernate introduced (prototype written, full bore, limited, etc..): full bore.

Length of learning curve to fully understand: Very easy to learn after having used another persistence layer (OJB) for several projects.

Most significant problem or issue faced: Nothing really.


Company name, Location: Cisco Learning Institute, Phoenix, AZ USA

Hibernate versions used: 2.1

Overall rating of Hibernate: Excellent. Easy to work with, lots of documentation and support.

Short description about project or app: e-Learning content authoring and management tool. Allows an author to develop e-learning content to industry standards in a manner that separates content from presentation.

Product or App challenges: The only real challenge so far has been dealing with tables that contain composite ids.

Why Hibernate was selected, what were the other options considered: Considered and compared against Apache OJB, jBoss CMP. Liked the ability to develop an 'ejb-free' persistence layer and the maturity of the ORM facilities.

Names and emails (optional) of developers who were involved with Hibernate coding: Terry Drozdowski (tdrozdow@ciscolearning.org)

Development & production environment (IDE, App Server, DB): Eclipse 2.1.1, JBoss IDE 1.2, jBoss 3.2.1, Oracle 9i

How was Hibernate introduced (prototype written, full bore, limited, etc..): Started with a basic prototype against a small database.

Length of learning curve to fully understand: A couple weeks. The online documentation helped quite a bit with any issues I've had so far, as well as the forums. XDoclet helped to a point but is lacking in some respects. (composite-ids)

Most significant problem or issue faced: Biggest time waster is working with bi-directional relationships and getting the mappings right for cascade.


Company name, Location: Open Lab S.r.l Florence, Italy

Hibernate versions used: from 1.2.3 to 2.1

Overall rating of Hibernate: Excellent. Fast, simple, well documented and supported.

Short description about project or app: A general web based team work management application

Product or App challenges: We wanted the app to have a mature persistence layer; previously we used a home made o/r mapping with hand written sql queries.

Why Hibernate was selected, what were the other options considered: Before we tried object oriented dbs, JDO (several implementations), OJB. Hibernate was superior in almost every aspect: stability, speed, power of query language, flexibility, open architecture.

Names and emails (optional) of developers who were involved with Hibernate coding: Pietro Polsinelli ppolsinelli@twproject.com

Development & production environment (IDE, App Server, DB): IntelliJ IDEA, Tomcat 4.0.x 4.1.x and Resin 2.x 3.x, MySql, Oracle9i, MS SQL Server 2000, Informix Dynamic Server

How was Hibernate introduced (prototype written, full bore, limited, etc..): Full bore

Length of learning curve to fully understand: Few days of intense study.

Most significant problem or issue faced: Getting the thread local right, improving performance, trying to get to work also with MS access (failed), setting right cascades, and finally query of collections values.. got it in in 2.1.


Company name, Location: Datacodex, Australia

Hibernate versions used: 2.1

Overall rating of Hibernate: Excellent.

Short description about project or app: Datacodex use hibernate for the persistence mechanism of many of the java based projects that we develop, including DriveNow.

Product or App challenges: Short time to market and a robust, extendable solution required.

Why Hibernate was selected, what were the other options considered: As an alternative to entity beans we found Hibernate to be a much better option than Castor.

Development & production environment (IDE, App Server, DB): Eclipse, Resin, mySQL, WebWork2 (framework)

How was Hibernate introduced (prototype written, full bore, limited, etc..): Full bore: After choosing Hibernate as our ORM of choice, we developed our next project with Hibernate from the very beginning.

Length of learning curve to fully understand: A few solid days to get it going and then a couple more weeks to bed it down.

Most significant problem or issue faced: None come to mind.


Company name, Location: Auchan International Technology

Hibernate versions used: 1.2.5, 2.0, 2.1.2

Overall rating of Hibernate: Excellent

Short description about project or app:

- Running in production for small and medium size backoffice and commercial apps

- working on an important project currently on progress (critical app,complex domain model, high availability and short response time required ...)

Product or App challenges:

- Integration of an ORM in our framework located on the DAO layer

- For simplification purpose, possibility to use 1 session per HttpRequest or 1 session per HttpSession depending of the business layer (eg: this business needs a longer transaction...)

Why Hibernate was selected, what were the other options considered:

- Castor --> seems too poor for our needs

- JDO --> too young ? not mature enough

- Toplink --> equivalent to Hibernate in terms of functionality but propietary solution.

- Self made solution --> too complexe to code

Names and emails (optional) of developers who were involved with Hibernate coding: Anthony Patricio (apatricio@auchan.com), e-development team

Development & production environment (IDE, App Server, DB): Eclipse, Tomcat

(might use others...), Oracle 8i

How was Hibernate introduced (prototype written, full bore, limited, etc..):

A protype was implemented to study the solution

- Understanding hibernate session

- How to use CRUD methods

- threadlocal strategy

- long transactions via storing hibernateSession into HttpSession

- we also have "isolated" the data access (and so hibernate) on a DAO layer, we

have coded different factories...

- stress tests of the prototype (with or without cache, with or without intelligent mapping <--> lazy loading..., with 1 2 or 4 tomcats...)

Length of learning curve to fully understand: 3 weeks to cover the basics, 6

weeks to learn and apply the advanced features

Most significant problem or issue faced: HibernateSession management (per httpRequest, ThreadLocalSession)


Company name, Location: CodeStreet LLC, www.codestreet.com

Hibernate versions used: 2.1

Overall rating of Hibernate: Excellent

Short description about project or app: Distributed trading system with a classic 3-tier architecture. C# client, Java backend, and Oracle database.

Product or App challenges: Reduce database-centric development, allow C#/Java objects to be seamlessly distributed between the client and backend.

Why Hibernate was selected, what were the other options considered: Feature set and cost were primary criteria. References from Hibernate users made it a prime candidate. Alternative strategies considered were JDBC and commercial tools liek TopLink.

Development & production environment (IDE, App Server, DB): Visual Studio .NET for client (C#), Eclipse, custom Java server, JMS for distribution, Springframework, Oracle.

How was Hibernate introduced (prototype written, full bore, limited, etc..): Small prototypes to validate basic functionality following by full-scale development.

Length of learning curve to fully understand: 3-4 weeks.

Most significant problem or issue faced: Getting a good grasp of collections,HQL, lazy loading, and caching.


Company name, Location: ID-on GmbH, http://www.id-on.de

Hibernate versions used: 1.2.x and 2.x

Satisfaction: We are now using hibernate for more than one year inside our applications and our satisfaction is 100%. In this time we do not had any data losses and our customer integrated our product into his publishing framework. There are also hort range plans to do a release for more companies within the same sector (book publishing).

Overall rating of Hibernate: Excellent, very intuitive and flexible to learn and to use. We tried also JDO implementations and missed there the flexibility of hibernate. By using beans we also added beans property change listeners, so we could intergrate by this way a swing interface to our database easilly.

Short description about project or app: Distributed book metadata system with a central server which is accessible by RMI and an XML servlet for german publishing houses. One of our customers has also some bestselling books in his programme, so you could say: Bestselling books are technically powered by Hibernate. Result of our work can be visited presently on over 20 domains, main web domain is: http://www.knaur.de

Product or App challenges: Reduce direct database development, allow Java objects to be seamlessly distributed between the client and backend, give possibility to choose the underlying database if needed (Oracle and Interbase are on the way)

Why Hibernate was selected, what were the other options considered: Primery criteria was flexibility. We also tried several JDO implementations and Intesystems Cachee, but hibernate was the winner in the planing process.

Development & production environment (IDE, App Server, DB): J2EE Servlet Engines (Cacho resin, Tomcat), IDEAJ, MYSQL

How was Hibernate introduced (prototype written, full bore, limited, etc..): Small object prototypes, excessive tests with millions of transactions, erd model implementation, testing, swing & xml object binding, release

Length of learning curve to fully understand: five work days

Most significant problem or issue faced: Undestanding of documentation and relations, choise of caching strategies

Names and emails of developers who were involved with Hibernate coding:

Andreas Bednarz: bednarz@id-on.de (http://www.id-on.de)

Screenshots: http://www.id-on-service.de/mpdbh/


Company name, Location: Development gateway Foundation, http://www.developmentgateway.org

Hibernate versions used: 2.x

Overall rating of Hibernate: Excellent. Very transparent and powerful.

Short description about project or app: Multisite portal framework in J2EE. http://www.digijava.org

Product or App challenges: No support for flexible recaching of cached data, especially - queries. Query recache, usually, runs for a while. Hibernate should use cached version during that time and seamlessly swap over the new value, when cached.

Why Hibernate was selected, what were the other options considered: We considered lots of different open-source tools for the same but Hibernate is, without any doubt, the most flexible, powerful and transparent (!). Transparency and power was the deciding factor. Great support, documentation and large community, too.

Names and emails of developers who were involved with Hibernate coding: Mikheil Kapanadze, mikheil at powerdot dot org, Irakli Nadareishvili, inadareishvili at dgfoundation dot org.

Development & production environment (IDE, App Server, DB): Eclipse, JBoss, Oracle+MySQL+PostgreSQL

How was Hibernate introduce (prototype written, full bore, limited, etc..): prototype written.

Length of learning curve to fully understand: 2-4 weeks.

Most significant problem or issue faced: Not very flexible query cache management.


Company name, Location: TeraMEDICA, Milwaukee, WI.

Hibernate versions used: Currently using 2.1.4.

Overall rating of Hibernate: Excellent - love the documentation and community!

Short description about project or app: Enterprise digital medical image management system. Manages up to petabytes of image data in an intelligent fashion, with unmatched performance and scalability.

Product or App challenges: The main challenge with our product (the TeraMEDICA Intelligent Image Manager - TI2m) has been to maintain the necessary performance and scalability, while dealing with an ever-increasing volume of imaging data. Note that this extends beyond just radiology and cardiology - encompassing the entire healthcare enterprise. Hibernate offers many tools to help us meet this challenge.

Why Hibernate was selected, what were the other options considered: Hibernate was selected because of a) performance, b) transparency (able to use existing domain model), c) ease of use, and d) cost. Other options considered were a homegrown persistence framework, OJB, and TopLink.

Names and emails (optional) of developers who were involved with Hibernate coding: Damien Evans, Doug Stelpflug, Justin Falk, Matt Kampmeier.

Development & production environment (IDE, App Server, DB): Eclipse, customized internal application server, Oracle 9i.

How was Hibernate introduced (prototype written, full bore, limited, etc..): Functionality was prototyped with the frameworks under consideration.

Length of learning curve to fully understand: The learning curve was relatively small, since we had a fair amount of experience with O-R mapping and similar frameworks. It took about a month to have a very good handle on Hibernate, however we still learn new things after using it for over a year.

Most significant problem or issue faced: TI2m is a highly concurrent system, so it took some trial and error to handle StaleObjectExceptions correctly in all possible cases.


Company name, Location: Innovation Gate GmbH, Germany.

Hibernate versions used: 2.1.4.

Overall rating of Hibernate: Great and easy to use persistence framework. Absolutely enterprise grade.

Short description about project or app: Content Management System that stores content in relational databases.

Product or App challenges: While previous versions of our software did only store in proprietary Lotus Domino Databases the biggest challenge for us was maintaining the document oriented view of our software while offering the option to store in a relational database. Therefor, using an object/relational mapper was a must.

Why Hibernate was selected, what were the other options considered: Mainly because of it's popularity, Hibernate was our first option, since popularity always means that there are many resources to use if we get into problems. HQL played a role since we needed extensive object-oriented query mechanisms.

Names and emails (optional) of developers who were involved with Hibernate coding: Oliver Weise (ow@innovationgate.de)

Development & production environment (IDE, App Server, DB): Websphere Studio App Developer 5.1, Tomcat 5, Websphere App Server 5, FirebirdSQL, MySQL, DB2.

How was Hibernate introduced (prototype written, full bore, limited, etc..): A "proof-of-concept"-Implementation of the (app-internal) database interfaces was written.

Length of learning curve to fully understand: The most complicated part is the mapping document. Important to note that the complexity here is not from hibernate but from the object/relational subject itself. Definitely pays out to read the mapping documentation at whole and thoroughly to prevent problems later on. The usage of the java API itself is very simple. So, the learning curve is a little steep when beginning to think about O/R-mapping, then quite flat. Length depends on complexity of the individual mapping problem.

Most significant problem or issue faced: Lockups of database servers on certail HQL queries over manoy-to-one-relations. Could be avoided by a small code modification.

Company name, Location: QCouples.com, USA

Hibernate versions used: 2.1.4.

Overall rating of Hibernate: Great and easy to use persistence framework. Absolutely enterprise grade.

Short description about project or app: A gay and lesbian community portal and dating service.

Product or App challenges: We wanted our webapplication to support most of the databases in the market and yet wanted full ant integration with the object persistance layer we were going to use .

Why Hibernate was selected, what were the other options considered: Mainly because of it's popularity, Hibernate was our first option, since popularity always means that there are many resources to use if we get into problems. Other known options did not have documentation as much as Hibernate and what good is a software without some basic documentation. Also time to learn Hibernate was resonable .

Names and emails (optional) of developers who were involved with Hibernate coding: Raj Nukala

raj_nukala(at)hotmail.com

Development & production environment (IDE, App Server, DB): Tomcat 4.1.24, Appache , Sapdb, our applicatio is running on a Ensim based shared hosting environment and uses different opensource libraries . application was developed using the following technologies

Sitemesh ,Webwork, xfig, hibernate, velocity, apache commons.

Build Environment : Eclipse IDE, xdoclet, ant

How was Hibernate introduced (prototype written, full bore, limited, etc..): From start to finish.

Length of learning curve to fully understand: The most complicated part is the mapping document. Important to note that the complexity here is not from hibernate but from the object/relational subject itself. Definitely pays out to read the mapping documentation at whole and thoroughly to prevent problems later on. The usage of the java API itself is very simple. So, the learning curve is a little steep when beginning to think about O/R-mapping, then quite flat. Length depends on complexity of the individual mapping problem.

Most significant problem or issue faced: Creating hbm files , Need better GUI based round trip tools .. Wish we had ddl2hbm2java tools working .. when app was written we tried the tools but there were hibernate version compatablities .. generated code needed further modification for Hibernate 2.1

      

coWiki