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


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

Hibernate versions used: 1.2.3 and 2.01

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

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: Template to use

Hibernate versions used:

Overall rating of Hibernate:

Short description about project or app:

Product or App challenges:

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

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

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

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

Length of learning curve to fully understand:

Most significant problem or issue faced:

      

coWiki web collaboration