I've been posting responses to various queries on the Hibernate Forums lately.
There seem to be a few recurring queries, so I'm looking to put together a white paper of sorts.
Here are my thoughts of what this might include.
JPA versus Hibernate:
- Standards compliant versus proprietary
- EntityManager versus Session
JPA does not require EJB3
- using a JPA implementation does not necessarily require an EJB3 container
JPA implementations:
- Hibernate
- DataNucleus (formerly known as JPox)
- Eclipselink
- OpenJPA
- Toplink
- ...?
Things to consider when evaluating products for your product or project:
- Licensing
- Stability
- Documentation and support
- Performance
- Benchmarking that matches your system's likely use cases
- Cost
JDBC Connection pooling
- Avoiding stale connections
- Implementations:
- c3p0
- DBCP
- Spring / Tomcat
- ...?
Lazy initialisation
- collections
Proxies
XML versus Annotation based configuration
Transactions
- Annotations for declaring Transactional behaviour of methods
- Which methods in which classes to mark with transactional annotation
Caching
- Second level cache
- Query cache
- Session / EntityManager
Performance issues
- N+1 queries
- batch size
Coding considerations:
- lazy initialisation exceptions
- avoid use of instanceof operator when proxies may be in place
No comments:
Post a Comment