Hibernate Documentation - consider deleting
Transactional services / Spring integration
Service classes or methods should be marked @Transactional to provide access to the underlying Hibernate Session / SessionFactory.
NamedQuery
Frequently executed HQL queries should be specified in @NamedQueryS on the relevant persistent entity/bean. The hibernate DAOs then reference the appropriate NamedQuery within their methods.
Useful tools
To run HQL queries and inspect the hibernate setup within Eclipse you can install the hibernate tools Eclipse plugin from JBoss by adding this update site to your Eclipse plugins registry (under Help -> Software Updates) - http://download.jboss.org/jbosstools/updates/development
You'll need to configure the plugin appropriately by providing the locations to the src/main/webapp/WEB-INF/hibernate.cfg.xml
and hibernate.properties
files.
Hibernate Collections
In order to remove an entity from a one-to-many or many-to-many relationship you must:
remove that entity from the persistent collection that it belongs to, e.g.,
TemporalTerm temporalTerm = ...; resource.getTemporalTerms().remove(temporalTerm); projectService.delete(temporalTerm);
Hibernate annotation schema mapping docs: http://www.hibernate.org/hib_docs/annotations/reference/en/html/
Enable second level caching via EHCache - http://www.devx.com/dbzone/Article/29685/1954?pf=true