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 left hand panel to add your project. We request you to please ensure that you enter only authentic information.
Thanks for your contribution!
- Ubik-Ingénierie, ubik-ingenierie.com, Roubaix, France
- Fedelta POS, fedeltapos.com, Brisbane, Australia
- Skillserv, skillserv.com, San Francisco, California, USA
- Company name, Location: SoftSlate Commerce, NY, USA
- Open Source Project: Wilos - http://www.wilos-project.org/
- Company name, Location: GPI Argentina, La PLata, Buenos Aires, Argentina
- Open Source Project: itracker
- Company name, Location: TerraContact Inc., Montreal, Canada
- Company name, Location: LF Inc., Tampa, FL
- Company name, Location: Elastic Path Software, Vancouver, BC, Canada
- Company name, Location: argus Barcelona, Europe
- Company name, Location: AT&T Labs, Tampa, Florida
- Company name, Location: JTeam, Amsterdam, The Netherlands
- Company name, Location: 1Genia, Paris, France
- Company name, Location: TDC Internet, Warsaw, Poland
- Company name, Location: PriceWaterhouseCoopers, Tampa, Florida
- Company name, Location: 2Fi Business Solutions Ltd., Hong Kong
- Company name, Location: Intrasoft International, Belgium, Brussels
- Company name, Location: Burgerweeshuis, Netherlands, Deventer
- Company name, Location: Cisco Learning Institute, Phoenix, AZ USA
- Company name, Location: Open Lab S.r.l, Florence I
- Company name, Location: DriveNow, Australia
- Sony Computer Entertainment Europe, SCEE, Studio Liverpool, Liverpool, United Kingdom
- AonCHOR, http://www.aonchor.aon.com, Aon Risk Service, US
- Company name, Location: Church and People, New York
- Crank Clothing, t-shirts and apparel
- Mailvision, End-to-End SIP solutions, Israel. (http://www.mailvision.com)
- Pyromod Software Inc, Creator of BestCrosswords.com, Montreal, Canada. (http://www.pyromod.com)
- Travel Toucan Travel Site
- STYLIGHT - German Fashion Marketplace
- qcadoo MES - manufacturing management system
- qcadoo Framework - data intensive and modular business web applications
Ubik-Ingénierie, ubik-ingenierie.com, Roubaix, France
Hibernate versions used: 2.1 => 3.2.5
Overall rating of Hibernate:
Excellent ORM Solution when portability is a big concern.
Short description about project or app:
Ubik Batch Server is a Java Batch solution that provides:
1. Enhanced performances thanks to MultiThreading algorithms
2. Simplified Batch Developement thanks to a full featured framework
3. Full JMX Administration
4. Simplified Administration of the server through a Webapp
5. Hot Deployment of Batches families (Multi Server)
6. ...
More information is available here:
- http://www.ubik-ingenierie.com/produits.htm
- http://www.ubik-ingenierie.com/ubikwiki/index.php?title=Ubik_Batch_Server_Features
Product or App challenges:
1. Full Portability on different Databases implementations.
2. Performance
3. Providing extensibility
Why Hibernate was selected, what were the other options considered:
We didn't want to tie our Database Repository to a particular Database implementation.
This was the first motivation to using Hibernate.
We found very interesting features like:
1. Advanced mapping features like inheritance, polymorphism, transitive persistance
2. Excellent Mapping API even when full Native SQL Queries are required
3. Rich Key generation implementations
Development & production environment (IDE, App Server, DB):
Eclipse, Oracle, DB2, SqlServer, MySql, Postgres
Length of learning curve to fully understand:
A matter of a month to cover the basics and start utilizing effectively.
"Fully" understanding took 5 months (NonUniqueObjectException, states of an object).
Most significant problem or issue faced:
Some bugs in certain Dialects (DB2Dialect).
Difficulties to choose the right mapping strategy (one-to-one mapping which does not supports delete-orphan).
Hibernate rich features which makes it difficult to qualify a Hibernate bug.
2007.11.24
Fedelta POS, fedeltapos.com, Brisbane, Australia
Hibernate versions used: 3.2, 2.1
Overall rating of Hibernate: Excellent ORM Solution. Compared to older pure SQL implementations it has been a pleasure to create and maintain
Short description about project or app: Commercial Enterprise Point of Sale (POS) solutions for Hospitality and Retail market segments . More information is available here.
Product or App challenges: Getting used to ORM, porting a large code base from 2.1 to 3.1
Why Hibernate was selected, what were the other options considered: In the initial phase pure JDBC, Hibernate, JDO, and J2EE were all evaluated as potential implementations. Hibernate was elected due to it intuitive APIs, performance, and simplicity over its rivals.
Development & production environment (IDE, App Server, DB): IntelliJ, Jini, FirebirdSQL
Length of learning curve to fully understand: A matter of weeks to cover the basics and start utilizing effectively. "Fully" understanding took a couple of months.
Most significant problem or issue faced: XDoclet templates had to be edited to achieve specific mappings.
2007.11.19
Skillserv, skillserv.com, San Francisco, California, USA
Hibernate versions used: 3.2
Overall rating of Hibernate: A pleasure to use and integrate, helped me cut my development and deployment time by about 25%.
Short description about project or app: A set of web-based calculators that help independent contractors calculate rates or compare compensation to equivalent full-time employment. More information is available here.
Product or App challenges: Made some beginner's mistakes regarding session management but, other than that, Hibernate was easy to integrate and use.
Why Hibernate was selected, what were the other options considered: Initially chose Hibernate as a learning exercise but found it to be a satisfactory middle ground between pure JDBC and the J2EE.
Development & production environment (IDE, App Server, DB): Eclipse, MySQL 5.X, Velocity, Tomcat 5.
Length of learning curve to fully understand: A couple of weeks of reading, prototyping, and integrating followed by an additional week of modifications and tuning.
Most significant problem or issue faced: Didn't encounter any significant issues (go to the site, increase my traffic, and help me find some!) I'll be using Hibernate in more sophisticated ways on my next project.
2007.10.23
Company name, Location: SoftSlate Commerce, NY, USA
Hibernate versions used: Hibernate 3.1
Overall rating of Hibernate: It is powerful and convenient to use. Most importantly for us, it enabled us to provide software for all kinds of DB systems.
Short description about project or app: ((http://www.softslate.com) (SoftSlate commerce) is Shopping cart software written using java/jsp/struts/hibernate.
Product or App challenges: SoftSlate Commerce has to be deployable for user choice database and able to abstract different queries from underlying DB layer. Plus able to extend/customize system using external files w/o changing core.
Why Hibernate was selected, what were the other options considered: There are other ORM tools in market, but hibernate api is most mature, better documented and accepted everywhere. Hibernate ecosystem is also very active, hence good for long term use w/o fear of being wasted efforts. In future, migration from Tomcat to JBoss will be non-issue.
Development & production environment (IDE, App Server, DB):
Dev environment is: Eclipse 3.2, Tomcat 5.5, MySQL, Struts (framework).
Production environment: Certified J2EE web containers and either of MySQL, Postgres, Oracle, MSSQL.
How was Hibernate introduced (prototype written, full bore, limited, etc..):
From past project experiences, Hibernate was always first choice.
Length of learning curve to fully understand:
Continously
Most significant problem or issue faced:
1. Couldn't find stable hibernate development plugin for Eclipse
2. Better examples
3. Speed of hibernate.org site
Open Source Project: Wilos - http://www.wilos-project.org/
Hibernate versions used: Hibernate 3.2.5.ga
Overall rating of Hibernate:
Hibernate is a great ORM framework that gives good mechanisms of linking java object to database. Pragammatical transactionnal features can become complex.
Good practices must be used to avoid application overload.
Short description about project or app: (http://www.wilos-project.org/)
Wilos states for Wilos is a Clever Orchestration Software. It has been designed to help managers and working teams follow different kinds of processes that have been designed with Eclipse Process Framework composer.
Wilos is designed for multi-users that could be on different geographical locations and is accessible through a Web Interface. An assistant is also provided for hour-to-hour work by supporting people with guidance and information.
Product or App challenges:
Has to provide services for a great number of projects and a lot of people working on.
Why Hibernate was selected, what were the other options considered:
-POJO vs. EJB
-Great integration with Spring
-Support of a famous and active framework
Names and emails of developers who were involved with Hibernate coding:
See the (http://www.wilos-project.org/) wilos website.
Development & production environment (IDE, App Server, DB):
-MySQL 4.x , 5.x
-Eclipse 3.3 ; WTP 2.0
-Tomcat Server 5.x , 5.5.x
-IceFaces 1.5.x
-JUnit 4.1
-Spring 2.x
How was Hibernate introduced (prototype written, full bore, limited, etc..):
Before to become a community, wilos was initially an university project. To support this project students used many agiles processes (Scrum, OpenUp and XP). So hibernate was introduced with a prototype iteration (proposed by the Scrum process) to study the feasibility of the J2EE technologies as Spring, Hibernate, IceFaces, etc.
Length of learning curve to fully understand:
One month to get the basics and three to get advanced skills.
Although in one month the prototype was realized, we are really sure that we learn about it every day
Most significant problem or issue faced:
-lazy loading (memory load)
-transactions mangement in different layers
04.07.2007
Company name, Location: GPI Argentina, La PLata, Buenos Aires, Argentina
Hibernate versions used: 0.7, 1.0, 1.8, 2.1, 3.1 without Annotations
Overall rating of Hibernate: Excellent, the best orm mapping in the market
Short description about project or app: Banking, finacnes, government, portals,etc.
Product or App challenges: Time, money, lic., open source, learning curve, flexibility, performance, integration.
Development & production environment (IDE, App Server, DB): Eclipse IDE, JBossAS, Oracle Orion, Tomcat, Websphere, Oracle, MySQL, DB2, DB2-AS400, Sybase, OS Linux, AS-400 Unix, Solaris.
How was Hibernate introduced (prototype written, full bore, limited, etc..): since release .07
Length of learning curve to fully understand: 1 week for basic stuff and 2 month for advanced and integration
Most significant problem or issue faced: Complex object relations, and big ammounts of data.
Open Source Project: itracker
Hibernate versions used: Hibernate 3.2
Overall rating of Hibernate: So far: well done.
Short description about project or app: ((http://www.itracker.org/) itracker is an issue tracking system designed to support projects with independent user bases. Features include multiple versions and components, detailed issue histories and email notifications. The version 3.X is based on Java Spring 2.0 and Hibernate 3.2.
Product or App challenges: Due to the well educated open source scene and the involved people in itracker, we did a smooth refactoring from EJB 2 to Spring 2.0 and Hibernate.
Why Hibernate was selected, what were the other options considered:
Because Open Source projects need some fancy stuff that is accepted by the crowd. And because it is approved to deliver.
Names and emails of developers who were involved with Hibernate coding:
See the ((http://www.itracker.org/) itracker website.
Development & production environment (IDE, App Server, DB):
Netbeans, Eclipse, Spring 2.0, Struts, Tomcat , MySql, etc. (choose your app server, choose your db, choose your IDE).
How was Hibernate introduced (prototype written, full bore, limited, etc..):
We refactored from EJB to Spring 2.0 and Hibernate.
Length of learning curve to fully understand:
It took about a month (a full iteration) for the team to start feeling at ease.
Most significant problem or issue faced:
Getting the bunch of people and companies together to work for the itracker 3.0 release. You need to get the act together and you need to walk the road. Step by step. itracker 3.0 is based on a proper foundation: Spring 2.0 and Hibernate.
16.01.2007
Company name, Location: TerraContact Inc., Montreal, Canada
Hibernate versions used: Hibernate 2.1.7
Overall rating of Hibernate: So far, the framework has answered all our
requirements except for some minor details that are not considered as showstoppers.
4.5 out of 5
Short description about project or app: ((http://www.terracontact.com/) is a web application that allows companies and particulars to buy and rent their services, reducing their time for searching for solutions.
Product or App challenges: The major obstacle was the lack of resources in the team. However, we were able to comply with all changes in every iteration of the development thanks in part to the use of this ORM solution. It allows us to implement use cases fairly rapidly, dropping the database schema and recreating it everytime we needed it.
The lazy initialization was a problem that affected the performance of the application since we were not able to implemented it. But after some research everything is working well.
Another problem is that we haven't been able to read correctly a PDF file stored in the database. However, with more time we should be able to find a solution to this.
Why Hibernate was selected, what were the other options considered:
We had someone in the team that had previous Hibernate experience. Also, the fact that our application was not going to be completely distributed rule out the option of using EJBs.
Needles to say that the technical documentation, specially the book Hibernate in Action put everybody on the board fairly rapidly.
Names and emails of developers who were involved with Hibernate coding:
Stephane Arcos (sarcos@terracontact.com)
Patria H.Lukman (phlukman@terracontact.com)
Development & production environment (IDE, App Server, DB):
Eclipse, Spring, Struts, Tomcat , MySql
How was Hibernate introduced (prototype written, full bore, limited, etc..):
I started with a simple CRUD use case integrating Struts, Spring and Hibernate.It consisted of performing the CRUD operations in a page and logging all different operations so that I could ilustrate how Hibernate worked, specially by logging the produced SQL
Length of learning curve to fully understand:
It took about a month (a full iteration) for the team to start feeling at ease.
Also, as a remark , most of the members of the dev team were not very familiar with Spring nor Struts. So, in that period of time, they had to learn all three technologies at the same time.
Most significant problem or issue faced:
1-Storing and reading CLOB datatype i.e for example, pdf files
2-All known issues such as lazy initialization were happily solved with the use of Spring filters.
Honestly, the usage of Hibernate has simplified our life as developers and allows us to really be productive in such a difficult area as the data persistence.
09.20.2005
Company name, Location: LF Inc., Tampa, FL
Hibernate versions used: Hibernate 2.1.x
Overall rating of Hibernate: The moment I started to read about Hibernate early last year (2004), I knew that Hibernate was the future. It is simple, non-intrusive, well-designed, and promotes POJO development way before the J2EE market started to adopt it.
Short description about project or app: Chain Store Guide is a customer-facing application to purchase and manage information product about the retail industry. The project also includes a full adminstrative application for management of product catalog, user mgmt, marketing, etc.
Product or App challenges: The applications were to be brought in-house within 6 to 7 months. The old apps were all on legacy Microsoft ASP that has been running for the past 6 years. So these apps had to be re-designed, coded, and implemented using J2EE. Given the number of functionalities that had to either be added or re-engineered, doing SQL by hand would have been too lengthy and error prone.
Why Hibernate was selected, what were the other options considered: We did not want embrace EJB because of the complexities associated. We adopted Hibernate because of its countless flexibilities, simplicity, and popularity. The online documentation helps tremendously and the book Hibernate Developer's Notebook (James Elliot, O'Reilly) got us started in no time. Because there are no special interfaces to learn, we were able to wrap Hinate in a thin data access layer.
Names and emails of developers who were involved with Hibernate coding: Vladimir Vivien vmatters@gmail.com (vviivien@lf.com).
Development & production environment (IDE, App Server, DB): JBuilder X, Struts, BEA Weblogic 8.1.
How was Hibernate introduced (prototype written, full bore, limited, etc..): I created sample apps to get a feel for this new object model instead of the relational. Once I realize the time-saving values of Hibernate I started to integrate it in our dev efforts.
Length of learning curve to fully understand: Took about 1 month since it was my first attempt at ORM. The hard part was to trust Hibernate to handle the relational constructs automatically and concentrate only on the object models.
Most significant problem or issue faced:
There were several issues which plagued us at first (but were resolved eventually). Here they are:
1. Understand when to use collections and how to handle lazy initialization. Once I started to think in terms of object modeling, these issues went away. Trusting Hibernate to generate the needed relationships. Once you let go of the relational model, and embrace the Object model, Hibernate works fine.
2. Session Management:
When to create and when to close a session depending on your framework (struts, spring, etc). First I was opening the session for each request call inside the Struts actions, but the session would close prematurely by the time the JSP is executed. Then I tried a Servlet Listener pattern as prescribed in the book Hibernate in Action (Christian Bauer, Gavin King - Manning). That would cause trouble as well because the session would remain open and Tiles insert would cause multiple session to open before others were closed.
My last resort was to extend Struts Actions servlet and wrap the processRequest() with the open/close call for the session and that seems to be very stable.
Well, I took a gamble on Hibernate and it paid off. Once you understand how to integrate Hibernate, it makes sense. Why would any sane developer wants to inject full SQL into their code. Since Java does not have SQL type, you are relagated to String concatenation which can cause all sort of errors and does not promot separation of concerns. Hibernate allows you to cleanly separate your concerns by hidding all generated sql.
Great tool Gavin et all.
02.23.2005
Company name, Location: Elastic Path Software, Vancouver, BC, Canada
Hibernate versions used: Hibernate 2.1
Overall rating of Hibernate: It is powerful and convenient to use although it has some limitations. Our dev team gave it a 4.5 out of 5.
Short description about project or app: Elastic Path is eCommerce software powered by Java technology.
Product or App challenges: Elastic Path is an enterprise application that is often deployed within an existing environment and therefore needs to support 5+ different databases.
Why Hibernate was selected, what were the other options considered: Hibernate provides us with a general way to support different databases without needing to write database vendor-specific SQL code in our data access layer. This allows us to use the same Data Access Objects with different databases. Hibernate is also a good O/R mapping solution so our developers don't need to deal with that problem. The primary reasons we chose Hibernate were: cost (none), speed, documentation and popularity. Other options we were evaluating included Castor and EJB.
Development & production environment (IDE, App Server, DB): Dev environment is: Eclipse, Tomcat, mySQL, Struts (framework). Production environment has many combinations of app server/DB.
How was Hibernate introduced (prototype written, full bore, limited, etc..): We wrote a small portion of our new application as a prototype, then built the rest of the application after we were confident that Hibernate would meet our needs.
Length of learning curve to fully understand: 1 month. Although we are continually finding new ways of leveraging its capabilities.
Most significant problem or issue faced:
1. It still has some differences for different databases. e.g. Supporting Oracle CLOBs would require us to write Oracle-specific Java code.
2. It requres different mapping files for different databases.
3. It doesn't support arbitrary joins .
Company name, Location: argus 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, 2.0.x, 2.1.6
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 (m.bogaert@memenco.com)
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.x
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 (tdrozdowski at gmail dot com)
Development & production environment (IDE, App Server, DB): Eclipse 3.1, JBoss IDE 1.x, jBoss 4.0.0, Oracle 9i, PostgreSQL 7.4.x
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 I
Hibernate versions used: from 1 to 3
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, 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@open-lab.com
Development & production environment (IDE, App Server, DB): IntelliJ IDEA, Tomcat 4, 5 and Resin 3, MySql, Oracle, MS SQL Server, 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 as MS does not give a driver), setting right cascades, and finally query of collections values.. got it in in 2.1.
Company name, Location: DriveNow, Australia
Hibernate versions used: 3.2
Overall rating of Hibernate: Excellent.
Short description about project or app: DriveNow is the home of discounted last minute car hire and camper van rentals in Australia and New Zealand.
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 or OJB
Development & production environment (IDE, App Server, DB): Eclipse 3.2, Tomcat, mySQL, WebWork2, Dojo, DWR
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.
--
Sony Computer Entertainment Europe, SCEE, Studio Liverpool, Liverpool, United Kingdom
Hibernate versions used: 3.0.5
Overall rating of Hibernate: Still evaluating
Short description about project or app: Currently using hibernate for an internal project to produce metrics and statistics about performance of assets such as frame rates, build times etc for the playstation 2 titles that are in production at Studio Liverpool. Also serves as test-bed to see whether it is suitable for larger scale enterprise applications, such as a revised solution to support an improved infrastructure for online gaming esp with the new PlayStation 3 titles in mind.
Product or App challenges: No specifics identified yet
Why Hibernate was selected, what were the other options considered: As an alternative to entity beans or plain jdbc.
Development & production environment (IDE, App Server, DB): Eclipse, Gentoo, PostgreSQL, Oracle, (App Server not decided yet)
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: Documentation is too sparse. Some intiutive concerns about performance.
--
AonCHOR, http://www.aonchor.aon.com, Aon Risk Service, US
Hibernate versions used: 3.0.3
Overall rating of Hibernate: Excellent, fast, full featured, simple and well documented.
Short description about project or app: Currently using hibernate via an in-house JDO wrapper. Contractor Default Insurance (CDI) programs are unique to the extent that the insured under the CDI policy manages subcontractor prequalification and, in the event of a default, the claims process. AonCHOR is the "Contractor Hands on Resource” available to Aon’s CDI clients to assist them in the administration of their CDI programs.
Product or App challenges: No specifics identified yet
Why Hibernate was selected, what were the other options considered: It's free, and is supported by an excellent community.
Development & production environment (IDE, App Server, DB): WebSphere 5, Rational Application Developer, Oracle.
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: No specifics identified yet.
Company name, Location: Church and People, New York
Hibernate versions used: 3.1
Overall rating of Hibernate: Should be able to meet the needs of almost any Java project for which object/relational mapping is appropriate.
Short description about project or app: A web site that provides churches with community building and administration tools. It includes online event registration, credit card processing, resource management, membership directories, private forums, an event calendar, e-mail tools, and more. The Church and People application works with a church's existing web site and accounting package, rather than trying to replace them.
Product or App challenges: Limited developer resources.
Why Hibernate was selected, what were the other options considered: Hibernate met the needs of the project, and minimized the longer-term project risk. A widely-used open source project has two advantages: (1) using its full API is safe, because it essentially becomes its own standard, and (2) the sheer number of users minimize the likelihood of important bugs in core functionality.
Development & production environment (IDE, App Server, DB): Intellij IDEA, Tapestry, Tomcat , MySql
How was Hibernate introduced (prototype written, full bore, limited, etc..): This was green field development. Hibernate was used from the start.
Length of learning curve to fully understand: If you are familiar with any product or standard in the "Java o/r family" (JDO, EJB, etc.) and with SQL, you should be able to get up to speed quickly.
Most significant problem or issue faced: Few problems related to the persistence layer were encountered.
Crank Clothing, t-shirts and apparel
Hibernate versions used: 3.1
Overall rating of Hibernate: Brilliant, very easy to use. Great documentation and community.
Short description about project or app: Wicked T-shirt / apparel company, catering to the skateboarders, BMXers and everyone else who likes living on the edge. Using hibernate for back end and user administration.
Product or App challenges: No specifics identified yet
Why Hibernate was selected, what were the other options considered: It's a quick and easy way to get the DAO pattern implemented. It rocks!
Development & production environment (IDE, App Server, DB): Tomcat, Spring Framework, Mysql, Apache and Php
Length of learning curve to fully understand: Ah! Does one really every fully understand anything?
Most significant problem or issue faced: I still am not too sure about how to deal with boolean values. "where cat = true" and variations on that theme don't seem to work. Probably just being thick.
Mailvision, End-to-End SIP solutions, Israel. (http://www.mailvision.com)
Hibernate versions used: 3.2
Overall rating of Hibernate: Pretty good product.
Short description about project or app: VOIP, SIP based platforms. End to end SIP solutions.
Product or App challenges: No specifics identified yet
Why Hibernate was selected, what were the other options considered: Everyone else using it :-)
Development & production environment (IDE, App Server, DB): Tomcat, MySQL, Adobe Flex
Length of learning curve to fully understand: Learning curve never ends ...
Most significant problem or issue faced: Caching, transactions and etc.
Pyromod Software Inc, Creator of BestCrosswords.com, Montreal, Canada. (http://www.pyromod.com)
Hibernate versions used: 3.2
Overall rating of Hibernate: Excellent!
Short description about project or app: Online crossword puzzles site.
Product or App challenges: No specifics identified yet
Why Hibernate was selected, what were the other options considered: Hibernate was clearly the best open source ORM when we decided to go with it (back in 2005). It had a vibrant community and great leadership.
Development & production environment (IDE, App Server, DB): Intellij IDEA, Tomcat 5.5, MySQL 4.1
Length of learning curve to fully understand: It was my first experience with an ORM so I'd say a couple of weeks to get something going.
Most significant problem or issue faced: Back in 2005, Criteria didn't have all the features that HQL would offer (e.g. projections).
Travel Toucan Travel Site
Hibernate versions used: 3.1
Overall rating of Hibernate: Great product
Short description about project or app: Working on developing an in-house management system.
Product or App challenges: None so far
Why Hibernate was selected, what were the other options considered: Found recommendations on DigitalPoint.
Development & production environment (IDE, App Server, DB): Tomcat , MySql , Apache, PHP
Length of learning curve to fully understand: Still working on it! A few weeks so far
Most significant problem or issue faced: Nothing big yet.
STYLIGHT - German Fashion Marketplace
Hibernate versions used: 3.3.1
Overall rating of Hibernate: Excellent ORM Solution, especially for scalable development processes of web applications
Short description about project or app: German Fashion marketplace wit over a million products in the database. Contact us if you need tips for faceted search in hibernate anselm.bauer@stylight.de
Product or App challenges:The massive data of products and filtering features we provide forced us to integrate Lucene via Hibernate Search. Also a big challenge was to configure the business logic in a way that only actually needed data is fetched.
Why Hibernate was selected, what were the other options considered:The combination with Lucene and the easy Annotation concept convinced us.
Development & production environment (IDE, App Server, DB): Apache, JBoss, MySQL, Struts 2
Length of learning curve to fully understand: Still learning every day! But the first application was running after few days.
Most significant problem or issue faced:First problem is the basic problem of ORM, the way to control which data is fetched. This can be done by lazy/eager fetching, but is still not very flexible. Moreover, the criteria concept is beautiful, but its pretty hard to write complex SQL queries, especially subqueries and subselects.
qcadoo MES - manufacturing management system
qcadoo Framework - data intensive and modular business web applications
Overall rating of Hibernate: Great ORM, fantastic database portability and flexibility
Short description about project or app:
qcadoo MES - easy to use and extensible open source manufacturing management system for small and medium companies
qcadoo Framework - an open source framework for rapid development of data intensive and highly modular business web applications
Product or App challenges: Handling large data sets. Making the data layer work securely with independent modules in a shared SaaS hosting.
Why Hibernate was selected, what were the other options considered: Ease of use, portability, flexibility, performance.
Development & production environment (IDE, App Server, DB): Tomcat, PostgreSQL, Eclipse
Length of learning curve to fully understand: All developers ware already accustomed with Hibernate. We also acquired in-depth knowledge of Hibernates internals easily.
Most significant problem or issue faced: Exposing Hibernate features to module developers in a shared SaaS environment in a secure manner.
Comments