Java Persistence Frameworks - 1.0

Extension ID

com.castsoftware.java.hibernate

What’s new?

Please see Java Persistence Frameworks - 1.0 - Release Notes  for more information.

Description

This extension provides support for Java Persistence frameworks such as JPA, Jakarta Persistence and 3 majors implementations (Hibernate,  EclipseLink, Apache OpenJPA), as well as  Ebean ORM, Spring Hibernate, EJB Entity, etc. (see below for the full list of supported frameworks).

Note that the JEE Analyzer provides full support for JPA and Hibernate, however, this extension provides additional support and should be used for any application using Ebean ORM, JPA, Jakarta Persistence, EclipseLink and Apache OpenJPA libraries.

In what situation should you install this extension?

If your Java application uses a supported Java Persistence framework (see below for the full list of supported frameworks), and you want to view these object types and their links, then you should install this extension. More specifically the extension will identify:

  • “callLinks” from Java methods to JPA Entity Operation objects.
  • “callLinks” from Java methods to JPA SQL Query objects.
  • “callLinks” from Java methods to JPQL Query objects.
  • “callLinks” from JPQL Query Objects to JPA Entity Operation objects.
  • “callLinks” from JPA Entity Operation objects to Life Cycle annotated Java Methods

Technology support

The following libraries are supported by this extension:

Library name Version Supported Supported Technology
JPA 1.0 to 2.2 (tick) Java
Jakarta Persistence 2.2 to 3.1 (tick) Java
Hibernate 2.0 to 6.4.x (tick) Java
EclipseLink 2.6.0 to 4.0.2 (tick) Java
Apache OpenJPA 1.0 to 3.2 (tick) Java
Spring Hibernate 3.0 to 6.1.x (tick) Java
Ebean ORM 10.0 to 13.25 (tick) Java
EJB Entity 1.1 to 3.0 (tick) Java

Supported persistence libraries

JPA
JPA APIs
  • javax.persistence.EntityManager.find
  • javax.persistence.EntityManager.refresh
  • javax.persistence.EntityManager.getReference
  • javax.persistence.EntityManager.merge
  • javax.persistence.EntityManager.persist
  • javax.persistence.EntityManager.remove
  • javax.persistence.Query.getResultList
  • javax.persistence.Query.getResultStream
  • javax.persistence.Query.getSingleResult
  • javax.persistence.Query.executeUpdate
  • javax.persistence.Query.getFirstResult
  • javax.persistence.TypedQuery.getResultList
  • javax.persistence.TypedQuery.getResultStream
  • javax.persistence.TypedQuery.getSingleResult
  • javax.persistence.TypedQuery.executeUpdate
  • javax.persistence.StoredProcedureQuery.getResultList
  • javax.persistence.StoredProcedureQuery.getSingleResult
  • javax.persistence.StoredProcedureQuery.executeUpdate
  • javax.persistence.StoredProcedureQuery.execute
  • javax.persistence.criteria.CriteriaQuery.getOrderList
Jakarta Persistence
Jakarta Persistence APIs
  • jakarta.persistence.EntityManager.find
  • jakarta.persistence.EntityManager.refresh
  • jakarta.persistence.EntityManager.getReference
  • jakarta.persistence.EntityManager.merge
  • jakarta.persistence.EntityManager.persist
  • jakarta.persistence.EntityManager.remove
  • jakarta.persistence.TypedQuery.getResultList
  • jakarta.persistence.Query.getResultList
  • jakarta.persistence.Query.getResultStream
  • jakarta.persistence.Query.getSingleResult
  • jakarta.persistence.Query.executeUpdate
  • jakarta.persistence.TypedQuery.getResultList
  • jakarta.persistence.Query.getFirstResult
  • jakarta.persistence.StoredProcedureQuery.execute

  • jakarta.persistence.StoredProcedureQuery.executeUpdate

  • jakarta.persistence.StoredProcedureQuery.getResultList

  • jakarta.persistence.StoredProcedureQuery.getSingleResult

Hibernate
Hibernate APIs
  • org.hibernate.Session.delete
  • org.hibernate.Session.update
  • org.hibernate.Session.merge
  • org.hibernate.Session.save
  • org.hibernate.Session.get
  • org.hibernate.Session.saveOrUpdate
  • org.hibernate.Session.persist
  • org.hibernate.Session.load
  • org.hibernate.Session.replicate
  • org.hibernate.Session.find
  • org.hibernate.Session.refresh
  • org.hibernate.Session.getReference
  • org.hibernate.Session.byId
  • org.hibernate.Session.byNaturalId
  • org.hibernate.Session.bySimpleNaturalId
  • org.hibernate.Session.byMultipleNaturalId
  • org.hibernate.SimpleNaturalIdLoadAccess.getReference
  • org.hibernate.SimpleNaturalIdLoadAccess.load
  • org.hibernate.classic.Session.delete
  • org.hibernate.classic.Session.update
  • org.hibernate.classic.Session.save
  • org.hibernate.classic.Session.find
  • org.hibernate.classic.Session.saveOrUpdateCopy
  • org.hibernate.event.EventSource.refresh
  • org.hibernate.event.EventSource.delete
  • org.hibernate.event.EventSource.merge
  • org.hibernate.event.EventSource.persist
  • org.hibernate.event.EventSource.persistOnFlush
  • org.hibernate.event.EventSource.saveOrUpdateCopy
  • org.hibernate.event.spi.EventSource.refresh
  • org.hibernate.event.spi.EventSource.delete
  • org.hibernate.event.spi.EventSource.merge
  • org.hibernate.event.spi.EventSource.persist
  • org.hibernate.event.spi.EventSource.persistOnFlush
  • org.hibernate.StatelessSession.delete
  • org.hibernate.StatelessSession.update
  • org.hibernate.StatelessSession.insert
  • org.hibernate.StatelessSession.fetch
  • org.hibernate.StatelessSession.refresh
  • org.hibernate.StatelessSession.get
  • org.hibernate.Query.list
  • org.hibernate.Query.uniqueResult
  • org.hibernate.Query.iterate
  • org.hibernate.Query.scroll
  • org.hibernate.Query.executeUpdate
  • org.hibernate.query.Query.executeUpdate
  • org.hibernate.query.Query.getSingleResult
  • org.hibernate.query.Query.getResultList
  • org.hibernate.query.Query.getResultStream
  • org.hibernate.query.Query.list
  • org.hibernate.query.Query.scroll
  • org.hibernate.query.Query.stream
  • org.hibernate.query.Query.uniqueResult
  • org.hibernate.query.Query.uniqueResultOptional
  • org.hibernate.classic.Session.iterate
  • org.hibernate.query.sqm.internal.QuerySqmImpl.getFirstResult
  • org.hibernate.query.sqm.internal.QuerySqmImpl.executeUpdate
  • org.hibernate.query.sqm.internal.QuerySqmImpl.getSingleResult
  • org.hibernate.query.sqm.internal.QuerySqmImpl.list
  • org.hibernate.query.sqm.internal.QuerySqmImpl.scroll
  • org.hibernate.query.sqm.internal.QuerySqmImpl.uniqueResult
  • org.hibernate.query.sqm.internal.QuerySqmImpl.uniqueResultOptional
  • org.hibernate.query.sqm.internal.QuerySqmImpl.stream
  • org.hibernate.Criteria.list
  • org.hibernate.Criteria.uniqueResult
  • org.hibernate.engine.SessionImplementor.executeNativeUpdate
  • org.hibernate.engine.SessionImplementor.executeUpdate
  • org.hibernate.engine.SessionImplementor.find
  • org.hibernate.engine.SessionImplementor.copy
  • org.hibernate.engine.SessionImplementor.findBySQL
  • org.hibernate.engine.SessionImplementor.iterate
  • org.hibernate.engine.SessionImplementor.iterateFilter
  • org.hibernate.engine.SessionImplementor.list
  • org.hibernate.engine.SessionImplementor.listCustomQuery
  • org.hibernate.engine.SessionImplementor.listFilter
  • org.hibernate.engine.SessionImplementor.scroll
  • org.hibernate.engine.SessionImplementor.scrollBySQL
  • org.hibernate.engine.spi.SessionImplementor.delete
  • org.hibernate.engine.spi.SessionImplementor.immediateLoad
  • org.hibernate.engine.spi.SessionImplementor.listCustomQuery
  • org.hibernate.engine.spi.SessionImplementor.merge
  • org.hibernate.engine.spi.SessionImplementor.persist
  • org.hibernate.engine.spi.SessionImplementor.persistOnFlush
  • org.hibernate.engine.spi.SessionImplementor.refresh
  • org.hibernate.engine.spi.SessionImplementor.scrollCustomQuery
  • org.hibernate.engine.spi.SharedSessionContractImplementor.executeNativeUpdate
  • org.hibernate.engine.spi.SharedSessionContractImplementor.executeUpdate
  • org.hibernate.engine.spi.SharedSessionContractImplementor.iterate
  • org.hibernate.engine.spi.SharedSessionContractImplementor.list
  • org.hibernate.engine.spi.SharedSessionContractImplementor.listCustomQuery
  • org.hibernate.engine.spi.SharedSessionContractImplementor.listFilter
  • org.hibernate.engine.spi.SharedSessionContractImplementor.scroll
  • org.hibernate.engine.spi.SharedSessionContractImplementor.scrollCustomQuery
  • org.hibernate.impl.AbstractSessionImpl.list
  • org.hibernate.impl.AbstractSessionImpl.scroll
  • org.hibernate.internal.SessionImpl.byId
  • org.hibernate.internal.SessionImpl.byMultipleIds
  • org.hibernate.internal.SessionImpl.byNaturalId
  • org.hibernate.internal.SessionImpl.bySimpleNaturalId
  • org.hibernate.internal.SessionImpl.delete
  • org.hibernate.internal.SessionImpl.executeNativeUpdate
  • org.hibernate.internal.SessionImpl.executeUpdate
  • org.hibernate.internal.SessionImpl.find
  • org.hibernate.internal.SessionImpl.get
  • org.hibernate.internal.SessionImpl.getReference
  • org.hibernate.internal.SessionImpl.iterate
  • org.hibernate.internal.SessionImpl.iterateString
  • org.hibernate.internal.SessionImpl.list
  • org.hibernate.internal.SessionImpl.listCustomQuery
  • org.hibernate.internal.SessionImpl.listFilter
  • org.hibernate.internal.SessionImpl.load
  • org.hibernate.internal.SessionImpl.lock
  • org.hibernate.internal.SessionImpl.merge
  • org.hibernate.internal.SessionImpl.persist
  • org.hibernate.internal.SessionImpl.persistOnFlush
  • org.hibernate.internal.SessionImpl.refresh
  • org.hibernate.internal.SessionImpl.remove
  • org.hibernate.internal.SessionImpl.replicate
  • org.hibernate.internal.SessionImpl.saveOrUpdate
  • org.hibernate.internal.SessionImpl.scroll
  • org.hibernate.internal.SessionImpl.scrollCustomQuery
  • org.hibernate.internal.SessionImpl.update
  • org.hibernate.Session.byMultipleIds
  • org.hibernate.Session.evict
  • org.hibernate.Session.lock
  • org.hibernate.query.SelectionQuery.getFirstResult
  • org.hibernate.query.SelectionQuery.getMaxResults
  • org.hibernate.query.SelectionQuery.getSingleResult
  • org.hibernate.query.SelectionQuery.getResultList
  • org.hibernate.query.SelectionQuery.getResultStream
  • org.hibernate.query.SelectionQuery.getSingleResultOrNull
  • org.hibernate.query.SelectionQuery.list
  • org.hibernate.query.SelectionQuery.scroll
  • org.hibernate.query.SelectionQuery.uniqueResult
  • org.hibernate.query.SelectionQuery.uniqueResultOptional
  • org.hibernate.query.MutationQuery.executeUpdate
  • org.hibernate.impl.CriteriaImpl.getFirstResult
  • org.hibernate.impl.CriteriaImpl.list
  • org.hibernate.impl.CriteriaImpl.scroll
  • org.hibernate.impl.CriteriaImpl.uniqueResult
  • org.hibernate.impl.SQLQueryImpl.executeUpdate
  • org.hibernate.impl.SQLQueryImpl.iterate
  • org.hibernate.impl.SQLQueryImpl.list
  • org.hibernate.impl.SQLQueryImpl.scroll
  • org.hibernate.impl.QueryImpl.executeUpdate
  • org.hibernate.impl.QueryImpl.iterate
  • org.hibernate.impl.QueryImpl.list
  • org.hibernate.impl.QueryImpl.scroll
  • net.sf.hibernate.Session.delete
  • net.sf.hibernate.Session.update
  • net.sf.hibernate.Session.save
  • net.sf.hibernate.Session.lock
  • net.sf.hibernate.Session.replicate
  • net.sf.hibernate.Session.find
  • net.sf.hibernate.Session.get
  • net.sf.hibernate.Session.evict
  • net.sf.hibernate.Session.load
  • net.sf.hibernate.Session.refresh
  • net.sf.hibernate.Session.saveOrUpdate
  • net.sf.hibernate.Query.iterate
  • net.sf.hibernate.Query.list
  • net.sf.hibernate.Query.scroll
  • net.sf.hibernate.Query.uniqueResult
  • net.sf.hibernate.Criteria.uniqueResult
  • net.sf.hibernate.Criteria.list
  • net.sf.hibernate.impl.CriteriaImpl.getFirstResult
  • net.sf.hibernate.impl.CriteriaImpl.getMaxResults
  • net.sf.hibernate.engine.Batcher.executeBatch
  • net.sf.hibernate.engine.SessionImplementor.find
  • net.sf.hibernate.engine.SessionImplementor.findBySQL
  • net.sf.hibernate.engine.SessionImplementor.iterate
  • net.sf.hibernate.engine.SessionImplementor.scroll
  • net.sf.hibernate.impl.AbstractQueryImpl.uniqueResult
  • net.sf.hibernate.engine.SessionImplementor.copy
  • net.sf.hibernate.engine.SessionImplementor.loadByUniqueKey
  • net.sf.hibernate.impl.BatcherImpl.executeBatch
  • net.sf.hibernate.impl.CriteriaImpl.list
  • net.sf.hibernate.impl.CriteriaImpl.uniqueResult
  • net.sf.hibernate.impl.FilterImpl.iterate
  • net.sf.hibernate.impl.FilterImpl.list
  • net.sf.hibernate.impl.FilterImpl.scroll
  • net.sf.hibernate.impl.IteratorImpl.remove
  • net.sf.hibernate.impl.QueryImpl.iterate
  • net.sf.hibernate.impl.QueryImpl.list
  • net.sf.hibernate.impl.QueryImpl.scroll
  • net.sf.hibernate.impl.ScheduledCollectionRecreate.execute
  • net.sf.hibernate.impl.ScheduledCollectionRemove.execute
  • net.sf.hibernate.impl.ScheduledCollectionUpdate.execute
  • net.sf.hibernate.impl.ScheduledDeletion.execute
  • net.sf.hibernate.impl.ScheduledIdentityInsertion.execute
  • net.sf.hibernate.impl.ScheduledInsertion.execute
  • net.sf.hibernate.impl.ScheduledUpdate.execute
  • net.sf.hibernate.impl.ScrollableResultsImpl.get
  • net.sf.hibernate.impl.ScrollableResultsImpl.scroll
  • net.sf.hibernate.impl.SessionFactoryImpl.getReference
  • net.sf.hibernate.impl.SessionImpl.delete
  • net.sf.hibernate.impl.SessionImpl.find
  • net.sf.hibernate.impl.SessionImpl.findBySQL
  • net.sf.hibernate.impl.SessionImpl.get
  • net.sf.hibernate.impl.SessionImpl.iterate
  • net.sf.hibernate.impl.SessionImpl.load
  • net.sf.hibernate.impl.SessionImpl.loadByUniqueKey
  • net.sf.hibernate.impl.SessionImpl.refresh
  • net.sf.hibernate.impl.SessionImpl.replicate
  • net.sf.hibernate.impl.SessionImpl.save
  • net.sf.hibernate.impl.SessionImpl.saveOrUpdate
  • net.sf.hibernate.impl.SessionImpl.saveOrUpdateCopy
  • net.sf.hibernate.impl.SessionImpl.scroll
  • net.sf.hibernate.impl.SessionImpl.update
  • net.sf.hibernate.impl.SQLQueryImpl.iterate
  • net.sf.hibernate.impl.SQLQueryImpl.list
  • net.sf.hibernate.impl.SQLQueryImpl.scroll
  • net.sf.hibernate.jca.JCASessionImpl.delete
  • net.sf.hibernate.jca.JCASessionImpl.find
  • net.sf.hibernate.jca.JCASessionImpl.get
  • net.sf.hibernate.jca.JCASessionImpl.iterate
  • net.sf.hibernate.jca.JCASessionImpl.load
  • net.sf.hibernate.jca.JCASessionImpl.refresh
  • net.sf.hibernate.jca.JCASessionImpl.replicate
  • net.sf.hibernate.jca.JCASessionImpl.save
  • net.sf.hibernate.jca.JCASessionImpl.saveOrUpdate
  • net.sf.hibernate.jca.JCASessionImpl.saveOrUpdateCopy
  • net.sf.hibernate.jca.JCASessionImpl.update
  • net.sf.hibernate.Session.iterate
  • net.sf.hibernate.Session.saveOrUpdateCopy
Hibernate SubClass APIs
  • org.hibernate.SQLQuery.list
  • org.hibernate.SQLQuery.uniqueResult
  • org.hibernate.SQLQuery.iterate
  • org.hibernate.SQLQuery.scroll
  • org.hibernate.SQLQuery.executeUpdate
  • org.hibernate.query.NativeQuery.uniqueResult
  • org.hibernate.query.NativeQuery.executeUpdate
  • org.hibernate.query.NativeQuery.getSingleResult
  • org.hibernate.query.NativeQuery.getResultList
  • org.hibernate.query.NativeQuery.getResultStream
  • org.hibernate.query.NativeQuery.uniqueResultOptional
  • org.hibernate.query.NativeQuery.list
  • org.hibernate.query.NativeQuery.scroll
  • org.hibernate.query.NativeQuery.stream
  • org.hibernate.procedure.ProcedureCall.getResultList
  • org.hibernate.procedure.ProcedureCall.getResultStream
  • org.hibernate.procedure.ProcedureCall.getSingleResult
  • org.hibernate.procedure.ProcedureCall.executeUpdate
  • org.hibernate.procedure.ProcedureCall.getFirstResult
  • org.hibernate.procedure.ProcedureCall.execute
  • org.hibernate.procedure.ProcedureCall.getUpdateCount
  • org.hibernate.procedure.ProcedureCall.getOutputs
  • org.hibernate.query.SelectionQuery.getResultCount
EclipseLink
EclipseLink APIs
  • org.eclipse.persistence.jpa.JpaEntityManager.find
  • org.eclipse.persistence.jpa.JpaEntityManager.refresh
  • org.eclipse.persistence.jpa.JpaEntityManager.getReference
  • org.eclipse.persistence.jpa.JpaEntityManager.merge
  • org.eclipse.persistence.jpa.JpaEntityManager.persist
  • org.eclipse.persistence.jpa.JpaEntityManager.remove
  • org.eclipse.persistence.jpa.JpaEntityManager.load
  • org.eclipse.persistence.jpa.JpaEntityManager.copy
  • org.eclipse.persistence.sessions.Session.copy
  • org.eclipse.persistence.sessions.Session.readAllObjects
  • org.eclipse.persistence.sessions.Session.readObject
  • org.eclipse.persistence.sessions.Session.refreshObject
  • org.eclipse.persistence.sessions.DatabaseSession.updateObject
  • org.eclipse.persistence.sessions.DatabaseSession.writeAllObjects
  • org.eclipse.persistence.sessions.DatabaseSession.writeObject
  • org.eclipse.persistence.sessions.DatabaseSession.insertObject
  • org.eclipse.persistence.sessions.DatabaseSession.deleteObject
  • org.eclipse.persistence.sessions.DatabaseSession.deleteAllObjects
  • org.eclipse.persistence.sessions.Session.executeQuery
  • org.eclipse.persistence.sessions.Session.executeSQL
  • org.eclipse.persistence.sessions.Session.executeSelectingCall
  • org.eclipse.persistence.sessions.Session.executeNonSelectingCall
  • org.eclipse.persistence.sessions.Session.executeNonSelectingSQL
  • org.eclipse.persistence.jpa.JpaQuery.getResultList
  • org.eclipse.persistence.jpa.JpaQuery.getResultStream
  • org.eclipse.persistence.jpa.JpaQuery.getSingleResult
  • org.eclipse.persistence.jpa.JpaQuery.executeUpdate
  • org.eclipse.persistence.jpa.JpaCriteriaBuilder.getOrderList
  • org.eclipse.persistence.queries.DatabaseQuery.execute
  • org.eclipse.persistence.queries.DatabaseQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadQuery.execute
  • org.eclipse.persistence.queries.ReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadQuery.getFirstResult
  • org.eclipse.persistence.queries.DataReadQuery.getFirstResult
  • org.eclipse.persistence.queries.DataReadQuery.execute
  • org.eclipse.persistence.queries.DataReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DataModifyQuery.execute
  • org.eclipse.persistence.queries.DataModifyQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ModifyQuery.execute
  • org.eclipse.persistence.queries.ModifyQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DeleteAllQuery.execute
  • org.eclipse.persistence.queries.DeleteAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DeleteAllQuery.executeDeleteAll
  • org.eclipse.persistence.queries.ModifyAllQuery.execute
  • org.eclipse.persistence.queries.ModifyAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectBuildingQuery.execute
  • org.eclipse.persistence.queries.ObjectBuildingQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectBuildingQuery.getFirstResult
  • org.eclipse.persistence.queries.DeleteObjectQuery.execute
  • org.eclipse.persistence.queries.DeleteObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectLevelModifyQuery.execute
  • org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DirectReadQuery.execute
  • org.eclipse.persistence.queries.DirectReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DirectReadQuery.getFirstResult
  • org.eclipse.persistence.queries.DoesExistQuery.execute
  • org.eclipse.persistence.queries.DoesExistQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectLevelReadQuery.except
  • org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadAllQuery.execute
  • org.eclipse.persistence.queries.ReadAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadObjectQuery.execute
  • org.eclipse.persistence.queries.ReadObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReportQuery.execute
  • org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ResultSetMappingQuery.execute
  • org.eclipse.persistence.queries.ResultSetMappingQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ResultSetMappingQuery.getFirstResult
  • org.eclipse.persistence.queries.UpdateAllQuery.execute
  • org.eclipse.persistence.queries.UpdateAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.UpdateObjectQuery.execute
  • org.eclipse.persistence.queries.UpdateObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ValueReadQuery.execute
  • org.eclipse.persistence.queries.ValueReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ValueReadQuery.getFirstResult
  • org.eclipse.persistence.queries.WriteObjectQuery.execute
  • org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery
Apache OpenJPA
OpenJPA APIs
  • org.apache.openjpa.persistence.OpenJPAEntityManager.find
  • org.apache.openjpa.persistence.OpenJPAEntityManager.refresh
  • org.apache.openjpa.persistence.OpenJPAEntityManager.getReference
  • org.apache.openjpa.persistence.OpenJPAEntityManager.merge
  • org.apache.openjpa.persistence.OpenJPAEntityManager.persist
  • org.apache.openjpa.persistence.OpenJPAEntityManager.remove
  • org.apache.openjpa.persistence.OpenJPAEntityManager.findAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.mergeAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.persistAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.refreshAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.removeAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.retrieve
  • org.apache.openjpa.persistence.OpenJPAEntityManager.retrieveAll
  • org.apache.openjpa.persistence.OpenJPAQuery.getResultList
  • org.apache.openjpa.persistence.OpenJPAQuery.getResultStream
  • org.apache.openjpa.persistence.OpenJPAQuery.getSingleResult
  • org.apache.openjpa.persistence.OpenJPAQuery.executeUpdate
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.getResultList
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.getSingleResult
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.executeUpdate
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.execute
  • org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery.compile
  • org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery.getOrderList
  • org.apache.openjpa.persistence.QueryImpl.getSingleResult
  • org.apache.openjpa.persistence.QueryImpl.getResultList
  • org.apache.openjpa.persistence.QueryImpl.getMaxResults
  • org.apache.openjpa.persistence.QueryImpl.executeUpdate
  • org.apache.openjpa.persistence.QueryImpl.getFirstResult
  • org.apache.openjpa.persistence.OpenJPAQuery.getFirstResult
Spring Hibernate
Spring Hibernate 3.x APIs
  • org.springframework.orm.hibernate3.HibernateTemplate.delete
  • org.springframework.orm.hibernate3.HibernateTemplate.deleteAll
  • org.springframework.orm.hibernate3.HibernateTemplate.update
  • org.springframework.orm.hibernate3.HibernateTemplate.merge
  • org.springframework.orm.hibernate3.HibernateTemplate.save
  • org.springframework.orm.hibernate3.HibernateTemplate.replicate
  • org.springframework.orm.hibernate3.HibernateTemplate.persist
  • org.springframework.orm.hibernate3.HibernateTemplate.get
  • org.springframework.orm.hibernate3.HibernateTemplate.load
  • org.springframework.orm.hibernate3.HibernateTemplate.find
  • org.springframework.orm.hibernate3.HibernateTemplate.refresh
  • org.springframework.orm.hibernate3.HibernateTemplate.loadAll
  • org.springframework.orm.hibernate3.HibernateTemplate.iterate
  • org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate
  • org.springframework.orm.hibernate3.HibernateTemplate.updateAll
  • org.springframework.orm.hibernate3.HibernateTemplate.bulkUpdate
  • org.springframework.orm.hibernate3.HibernateTemplate.findByNamedParam
  • org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQuery
  • org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQueryAndNamedParam
  • org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria
  • org.springframework.orm.hibernate3.HibernateTemplate.findByValueBean
Spring Hibernate 4.x APIs
  • org.springframework.orm.hibernate4.HibernateTemplate.delete
  • org.springframework.orm.hibernate4.HibernateTemplate.deleteAll
  • org.springframework.orm.hibernate4.HibernateTemplate.update
  • org.springframework.orm.hibernate4.HibernateTemplate.merge
  • org.springframework.orm.hibernate4.HibernateTemplate.save
  • org.springframework.orm.hibernate4.HibernateTemplate.replicate
  • org.springframework.orm.hibernate4.HibernateTemplate.persist
  • org.springframework.orm.hibernate4.HibernateTemplate.get
  • org.springframework.orm.hibernate4.HibernateTemplate.load
  • org.springframework.orm.hibernate4.HibernateTemplate.find
  • org.springframework.orm.hibernate4.HibernateTemplate.refresh
  • org.springframework.orm.hibernate4.HibernateTemplate.loadAll
  • org.springframework.orm.hibernate4.HibernateTemplate.iterate
  • org.springframework.orm.hibernate4.HibernateTemplate.saveOrUpdate
  • org.springframework.orm.hibernate4.HibernateTemplate.updateAll
  • org.springframework.orm.hibernate4.HibernateTemplate.bulkUpdate
  • org.springframework.orm.hibernate4.HibernateTemplate.findByNamedParam
  • org.springframework.orm.hibernate4.HibernateTemplate.findByNamedQuery
  • org.springframework.orm.hibernate4.HibernateTemplate.findByNamedQueryAndNamedParam
  • org.springframework.orm.hibernate4.HibernateTemplate.findByCriteria
  • org.springframework.orm.hibernate4.HibernateTemplate.findByValueBean
Spring Hibernate 5.x APIs
  • org.springframework.orm.hibernate5.HibernateTemplate.delete
  • org.springframework.orm.hibernate5.HibernateTemplate.deleteAll
  • org.springframework.orm.hibernate5.HibernateTemplate.update
  • org.springframework.orm.hibernate5.HibernateTemplate.merge
  • org.springframework.orm.hibernate5.HibernateTemplate.save
  • org.springframework.orm.hibernate5.HibernateTemplate.persist
  • org.springframework.orm.hibernate5.HibernateTemplate.replicate
  • org.springframework.orm.hibernate5.HibernateTemplate.get
  • org.springframework.orm.hibernate5.HibernateTemplate.load
  • org.springframework.orm.hibernate5.HibernateTemplate.find
  • org.springframework.orm.hibernate5.HibernateTemplate.refresh
  • org.springframework.orm.hibernate5.HibernateTemplate.loadAll
  • org.springframework.orm.hibernate5.HibernateTemplate.iterate
  • org.springframework.orm.hibernate5.HibernateTemplate.saveOrUpdate
  • org.springframework.orm.hibernate5.HibernateTemplate.updateAll
  • org.springframework.orm.hibernate5.HibernateTemplate.bulkUpdate
  • org.springframework.orm.hibernate5.HibernateTemplate.findByNamedParam
  • org.springframework.orm.hibernate5.HibernateTemplate.findByNamedQuery
  • org.springframework.orm.hibernate5.HibernateTemplate.findByNamedQueryAndNamedParam
  • org.springframework.orm.hibernate5.HibernateTemplate.findByCriteria
  • org.springframework.orm.hibernate5.HibernateTemplate.findByValueBean
Ebean ORM
Ebean APIs (version 10.0 - 12)
  • io.ebean.Ebean.save
  • io.ebean.Ebean.delete
  • io.ebean.Ebean.deletePermanent
  • io.ebean.Ebean.insert
  • io.ebean.Ebean.merge
  • io.ebean.Ebean.update
  • io.ebean.Ebean.getReference
  • io.ebean.Ebean.refresh
  • io.ebean.Ebean.refreshMany
  • io.ebean.Ebean.saveAll
  • io.ebean.Ebean.deleteAll
  • io.ebean.Ebean.deleteAllPermanent
  • io.ebean.Ebean.insertAll
  • io.ebean.Ebean.updateAll
  • io.ebean.Ebean.find
  • io.ebean.Ebean.execute
  • io.ebean.Ebean.executeCall
  • io.ebean.EbeanServer.find
  • io.ebean.Query.update
  • io.ebean.Query.delete
  • io.ebean.Query.findList
  • io.ebean.Query.findOne
  • io.ebean.Query.findSet
  • io.ebean.Query.findMap
  • io.ebean.Query.findStream
  • io.ebean.Query.findIterate
  • io.ebean.Query.findPagedList
  • io.ebean.Query.findCount
  • io.ebean.Query.findEach
  • io.ebean.Query.findEachWhile
  • io.ebean.Query.findFutureCount
  • io.ebean.Query.findFutureIds
  • io.ebean.Query.findFutureList
  • io.ebean.Query.findIds
  • io.ebean.Query.findOneOrEmpty
  • io.ebean.Query.findSingleAttribute
  • io.ebean.Query.findSingleAttributeList
  • io.ebean.ExpressionList.update
  • io.ebean.ExpressionList.delete
  • io.ebean.ExpressionList.findList
  • io.ebean.ExpressionList.findOne
  • io.ebean.ExpressionList.findSet
  • io.ebean.ExpressionList.findMap
  • io.ebean.ExpressionList.findIterate
  • io.ebean.ExpressionList.findPagedList
  • io.ebean.ExpressionList.findCount
  • io.ebean.ExpressionList.findEach
  • io.ebean.ExpressionList.findEachWhile
  • io.ebean.ExpressionList.findFutureCount
  • io.ebean.ExpressionList.findFutureIds
  • io.ebean.ExpressionList.findFutureList
  • io.ebean.ExpressionList.findIds
  • io.ebean.ExpressionList.findOneOrEmpty
  • io.ebean.ExpressionList.findSingleAttribute
  • io.ebean.ExpressionList.findSingleAttributeList
  • io.ebean.SqlQuery.findList
  • io.ebean.SqlQuery.findOne
  • io.ebean.SqlQuery.findEach
  • io.ebean.SqlQuery.findEachRow
  • io.ebean.SqlQuery.findEachWhile
  • io.ebean.SqlQuery.findOneOrEmpty
  • io.ebean.SqlQuery.findSingleAttribute
  • io.ebean.SqlQuery.findSingleAttributeList
  • io.ebean.SqlQuery.findSingleDecimal
  • io.ebean.SqlQuery.findSingleLong
  • io.ebean.SqlUpdate.execute
  • io.ebean.SqlUpdate.executeBatch
  • io.ebean.SqlUpdate.executeGetKey
  • io.ebean.SqlUpdate.executeNow
  • io.ebean.Update.execute
  • io.ebean.UpdateQuery.update
  • io.ebean.DtoQuery.findEach
  • io.ebean.DtoQuery.findEachWhile
  • io.ebean.DtoQuery.findIterate
  • io.ebean.DtoQuery.findList
  • io.ebean.DtoQuery.findOne
  • io.ebean.DtoQuery.findOneOrEmpty
  • io.ebean.DtoQuery.findStream
  • io.ebean.ExtendedServer.findCount
  • io.ebean.ExtendedServer.findEach
  • io.ebean.ExtendedServer.findEachWhile
  • io.ebean.ExtendedServer.findFutureCount
  • io.ebean.ExtendedServer.findFutureIds
  • io.ebean.ExtendedServer.findFutureList
  • io.ebean.ExtendedServer.findIds
  • io.ebean.ExtendedServer.findIterate
  • io.ebean.ExtendedServer.findList
  • io.ebean.ExtendedServer.findMap
  • io.ebean.ExtendedServer.findOne
  • io.ebean.ExtendedServer.findOneOrEmpty
  • io.ebean.ExtendedServer.findPagedList
  • io.ebean.ExtendedServer.findSet
  • io.ebean.ExtendedServer.findSingleAttributeList
  • io.ebean.ExtendedServer.findSingleAttributeSet
  • io.ebean.ExtendedServer.findStream
  • io.ebean.BeanFinder.findAll
  • io.ebean.BeanFinder.findById
  • io.ebean.BeanFinder.findByIdOrEmpty
Ebean APIs (version 12.0 - 13.18)
  • io.ebean.DB.save
  • io.ebean.DB.delete
  • io.ebean.DB.deletePermanent
  • io.ebean.DB.insert
  • io.ebean.DB.merge
  • io.ebean.DB.update
  • io.ebean.DB.getReference
  • io.ebean.DB.reference
  • io.ebean.DB.refresh
  • io.ebean.DB.refreshMany
  • io.ebean.DB.lock
  • io.ebean.DB.saveAll
  • io.ebean.DB.deleteAll
  • io.ebean.DB.deleteAllPermanent
  • io.ebean.DB.insertAll
  • io.ebean.DB.updateAll
  • io.ebean.DB.find
  • io.ebean.DB.execute
  • io.ebean.DB.executeCall
  • io.ebean.Database.save
  • io.ebean.Database.delete
  • io.ebean.Database.deletePermanent
  • io.ebean.Database.insert
  • io.ebean.Database.merge
  • io.ebean.Database.update
  • io.ebean.Database.getReference
  • io.ebean.Database.reference
  • io.ebean.Database.refresh
  • io.ebean.Database.refreshMany
  • io.ebean.Database.lock
  • io.ebean.Database.saveAll
  • io.ebean.Database.deleteAll
  • io.ebean.Database.deleteAllPermanent
  • io.ebean.Database.insertAll
  • io.ebean.Database.updateAll
  • io.ebean.Database.find
  • io.ebean.Database.execute
  • io.ebean.Database.executeCall

Supported JPA Annotations

The following JPA annotations are supported, whatever their full name : in javax.persistence, jakarta.persistence or in specific library package name, when overidden.

  • Entity
  • Table
  • Inheritance
  • SecondaryTable
  • NamedQuery
  • NamedQueries
  • NamedNativeQuery
  • NamedNativeQueries
  • NamedStoredProcedureQuery
  • NamedStoredProcedureQueries
  • PrePersist
  • PostPersist
  • PreRemove
  • PostRemove
  • PreUpdate
  • PostUpdate
  • PostLoad
  • SQLUpdate
  • SQLInsert
  • SQLDelete
  • SQLDeleteAll

AIP Core compatibility

This extension is compatible with:

AIP Core release Supported
8.3.x (tick)

Download and installation instructions

For Java applications using any of the above mentionned libraries, this extension will be automatically installed by CAST Console. This is in place since October 2023.

For upgrade, if the Extension Strategy is not set to Auto update, you can manually upgrade the extension using the Application - Extensions interface.

What results can you expect?

Once the analysis/snapshot generation is completed, you can view the results. The following objects and links will be displayed:

Objects

Icon Description Comment

JPA Entity an object is created when we encounter @Entity  annotation

JPA Entity Operation an object is created for each CRUD operation performed on Entity

JPA SQL Query an object is created for each native SQL query found and resolved in a  method call

JPQL Query an object is created for each HQL or JPQL query found and resolved in a  method call

JPA Unknown SQL Query an object is created for each SQL / HQL / JPQL query found and the exact query cannot be resolved

JPA Unknown Entity an object is created when entity cannot be resolved

JPA Unknown Entity Operation an object is created when CRUD operation is performed and Entity cannot be resolved

Link Type

Caller type

Callee type

Java Persistence Framework APIs Supported

callLink 


Java Method

JPA Entity Operation, JPA Unknown Entity Operation

Hibernate CRUD APIs
  • org.hibernate.Session.delete
  • org.hibernate.Session.update
  • org.hibernate.Session.merge
  • org.hibernate.Session.save
  • org.hibernate.Session.get
  • org.hibernate.Session.saveOrUpdate
  • org.hibernate.Session.persist
  • org.hibernate.Session.load
  • org.hibernate.Session.replicate
  • org.hibernate.Session.find
  • org.hibernate.Session.refresh
  • org.hibernate.Session.getReference
  • org.hibernate.Session.byId
  • org.hibernate.Session.byNaturalId
  • org.hibernate.Session.bySimpleNaturalId
  • org.hibernate.Session.byMultipleNaturalId
  • org.hibernate.SimpleNaturalIdLoadAccess.getReference
  • org.hibernate.SimpleNaturalIdLoadAccess.load
  • org.hibernate.classic.Session.delete
  • org.hibernate.classic.Session.update
  • org.hibernate.classic.Session.save
  • org.hibernate.classic.Session.find
  • org.hibernate.classic.Session.saveOrUpdateCopy
  • org.hibernate.event.EventSource.refresh
  • org.hibernate.event.EventSource.delete
  • org.hibernate.event.EventSource.merge
  • org.hibernate.event.EventSource.persist
  • org.hibernate.event.EventSource.persistOnFlush
  • org.hibernate.event.EventSource.saveOrUpdateCopy
  • org.hibernate.event.spi.EventSource.refresh
  • org.hibernate.event.spi.EventSource.delete
  • org.hibernate.event.spi.EventSource.merge
  • org.hibernate.event.spi.EventSource.persist
  • org.hibernate.event.spi.EventSource.persistOnFlush
  • org.hibernate.StatelessSession.delete
  • org.hibernate.StatelessSession.update
  • org.hibernate.StatelessSession.insert
  • org.hibernate.StatelessSession.refresh
  • org.hibernate.StatelessSession.fetch
  • org.hibernate.StatelessSession.get
  • org.hibernate.engine.spi.SessionImplementor.delete
  • org.hibernate.engine.spi.SessionImplementor.immediateLoad
  • org.hibernate.engine.spi.SessionImplementor.listCustomQuery
  • org.hibernate.engine.spi.SessionImplementor.merge
  • org.hibernate.engine.spi.SessionImplementor.persist
  • org.hibernate.engine.spi.SessionImplementor.persistOnFlush
  • org.hibernate.engine.spi.SessionImplementor.refresh
  • org.hibernate.engine.SessionImplementor.copy
  • org.hibernate.internal.SessionImpl.byId
  • org.hibernate.internal.SessionImpl.byMultipleIds
  • org.hibernate.internal.SessionImpl.byNaturalId
  • org.hibernate.internal.SessionImpl.bySimpleNaturalId
  • org.hibernate.internal.SessionImpl.delete
  • org.hibernate.internal.SessionImpl.find
  • org.hibernate.internal.SessionImpl.get
  • org.hibernate.internal.SessionImpl.getReference
  • org.hibernate.internal.SessionImpl.load
  • org.hibernate.internal.SessionImpl.lock
  • org.hibernate.internal.SessionImpl.merge
  • org.hibernate.internal.SessionImpl.persist
  • org.hibernate.internal.SessionImpl.persistOnFlush
  • org.hibernate.internal.SessionImpl.refresh
  • org.hibernate.internal.SessionImpl.remove
  • org.hibernate.internal.SessionImpl.replicate
  • org.hibernate.internal.SessionImpl.saveOrUpdate
  • org.hibernate.internal.SessionImpl.update
  • org.hibernate.Session.byMultipleIds
  • org.hibernate.Session.evict
  • org.hibernate.Session.lock
  • org.hibernate.Criteria.list
  • org.hibernate.Criteria.uniqueResult
  • net.sf.hibernate.Session.delete
  • net.sf.hibernate.Session.update
  • net.sf.hibernate.Session.save
  • net.sf.hibernate.Session.replicate
  • net.sf.hibernate.Session.find
  • net.sf.hibernate.Session.get
  • net.sf.hibernate.Session.evict
  • net.sf.hibernate.Session.load
  • net.sf.hibernate.Session.lock
  • net.sf.hibernate.Session.refresh
  • net.sf.hibernate.Session.saveOrUpdate
  • net.sf.hibernate.impl.IteratorImpl.remove
  • net.sf.hibernate.impl.ScrollableResultsImpl.get
  • net.sf.hibernate.impl.SessionFactoryImpl.getReference
  • net.sf.hibernate.engine.SessionImplementor.copy
  • net.sf.hibernate.engine.SessionImplementor.loadByUniqueKey
  • net.sf.hibernate.impl.SessionImpl.delete
  • net.sf.hibernate.impl.SessionImpl.get
  • net.sf.hibernate.impl.SessionImpl.load
  • net.sf.hibernate.impl.SessionImpl.loadByUniqueKey
  • net.sf.hibernate.impl.SessionImpl.refresh
  • net.sf.hibernate.impl.SessionImpl.replicate
  • net.sf.hibernate.impl.SessionImpl.save
  • net.sf.hibernate.impl.SessionImpl.saveOrUpdate
  • net.sf.hibernate.impl.SessionImpl.saveOrUpdateCopy
  • net.sf.hibernate.impl.SessionImpl.update
  • net.sf.hibernate.jca.JCASessionImpl.delete
  • net.sf.hibernate.jca.JCASessionImpl.find
  • net.sf.hibernate.jca.JCASessionImpl.get
  • net.sf.hibernate.jca.JCASessionImpl.load
  • net.sf.hibernate.jca.JCASessionImpl.refresh
  • net.sf.hibernate.jca.JCASessionImpl.replicate
  • net.sf.hibernate.jca.JCASessionImpl.save
  • net.sf.hibernate.jca.JCASessionImpl.saveOrUpdate
  • net.sf.hibernate.jca.JCASessionImpl.saveOrUpdateCopy
  • net.sf.hibernate.jca.JCASessionImpl.update
  • net.sf.hibernate.Session.saveOrUpdateCopy
JPA CRUD APIs
  • javax.persistence.EntityManager.find
  • javax.persistence.EntityManager.refresh
  • javax.persistence.EntityManager.getReference
  • javax.persistence.EntityManager.merge
  • javax.persistence.EntityManager.persist
  • javax.persistence.EntityManager.remove
Jakarta CRUD APIs
  • jakarta.persistence.EntityManager.find
  • jakarta.persistence.EntityManager.getReference
  • jakarta.persistence.EntityManager.merge
  • jakarta.persistence.EntityManager.persist
  • jakarta.persistence.EntityManager.remove
  • jakarta.persistence.EntityManager.refresh
OpenJPA CRUD APIs
  • org.apache.openjpa.persistence.OpenJPAEntityManager.find
  • org.apache.openjpa.persistence.OpenJPAEntityManager.refresh
  • org.apache.openjpa.persistence.OpenJPAEntityManager.getReference
  • org.apache.openjpa.persistence.OpenJPAEntityManager.merge
  • org.apache.openjpa.persistence.OpenJPAEntityManager.persist
  • org.apache.openjpa.persistence.OpenJPAEntityManager.remove
  • org.apache.openjpa.persistence.OpenJPAEntityManager.findAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.mergeAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.persistAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.refreshAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.removeAll
  • org.apache.openjpa.persistence.OpenJPAEntityManager.retrieve
  • org.apache.openjpa.persistence.OpenJPAEntityManager.retrieveAll
Ebean CRUD APIs
  • io.ebean.Ebean.save
  • io.ebean.Ebean.delete
  • io.ebean.Ebean.deletePermanent
  • io.ebean.Ebean.insert
  • io.ebean.Ebean.merge
  • io.ebean.Ebean.update
  • io.ebean.Ebean.getReference
  • io.ebean.Ebean.refresh
  • io.ebean.Ebean.refreshMany
  • io.ebean.Ebean.saveAll
  • io.ebean.Ebean.deleteAll
  • io.ebean.Ebean.deleteAllPermanent
  • io.ebean.Ebean.insertAll
  • io.ebean.Ebean.updateAll
  • io.ebean.DB.save
  • io.ebean.DB.delete
  • io.ebean.DB.deletePermanent
  • io.ebean.DB.insert
  • io.ebean.DB.merge
  • io.ebean.DB.update
  • io.ebean.DB.getReference
  • io.ebean.DB.reference
  • io.ebean.DB.refresh
  • io.ebean.DB.refreshMany
  • io.ebean.DB.lock
  • io.ebean.DB.saveAll
  • io.ebean.DB.deleteAll
  • io.ebean.DB.deleteAllPermanent
  • io.ebean.DB.insertAll
  • io.ebean.DB.updateAll
  • io.ebean.Database.save
  • io.ebean.Database.delete
  • io.ebean.Database.deletePermanent
  • io.ebean.Database.insert
  • io.ebean.Database.merge
  • io.ebean.Database.update
  • io.ebean.Database.getReference
  • io.ebean.Database.reference
  • io.ebean.Database.refresh
  • io.ebean.Database.refreshMany
  • io.ebean.Database.lock
  • io.ebean.Database.saveAll
  • io.ebean.Database.deleteAll
  • io.ebean.Database.deleteAllPermanent
  • io.ebean.Database.insertAll
  • io.ebean.Database.updateAll
Spring Hibernate CRUD APIs
  • org.springframework.orm.hibernate3.HibernateTemplate.delete
  • org.springframework.orm.hibernate3.HibernateTemplate.update
  • org.springframework.orm.hibernate3.HibernateTemplate.merge
  • org.springframework.orm.hibernate3.HibernateTemplate.save
  • org.springframework.orm.hibernate3.HibernateTemplate.replicate
  • org.springframework.orm.hibernate3.HibernateTemplate.persist
  • org.springframework.orm.hibernate3.HibernateTemplate.get
  • org.springframework.orm.hibernate3.HibernateTemplate.load
  • org.springframework.orm.hibernate3.HibernateTemplate.find
  • org.springframework.orm.hibernate3.HibernateTemplate.refresh
  • org.springframework.orm.hibernate3.HibernateTemplate.loadAll
  • org.springframework.orm.hibernate3.HibernateTemplate.iterate
  • org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate
  • org.springframework.orm.hibernate3.HibernateTemplate.updateAll
  • org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria
  • org.springframework.orm.hibernate3.HibernateTemplate.findByValueBean
  • org.springframework.orm.hibernate4.HibernateTemplate.delete
  • org.springframework.orm.hibernate4.HibernateTemplate.update
  • org.springframework.orm.hibernate4.HibernateTemplate.merge
  • org.springframework.orm.hibernate4.HibernateTemplate.save
  • org.springframework.orm.hibernate4.HibernateTemplate.replicate
  • org.springframework.orm.hibernate4.HibernateTemplate.persist
  • org.springframework.orm.hibernate4.HibernateTemplate.get
  • org.springframework.orm.hibernate4.HibernateTemplate.load
  • org.springframework.orm.hibernate4.HibernateTemplate.find
  • org.springframework.orm.hibernate4.HibernateTemplate.refresh
  • org.springframework.orm.hibernate4.HibernateTemplate.loadAll
  • org.springframework.orm.hibernate4.HibernateTemplate.iterate
  • org.springframework.orm.hibernate4.HibernateTemplate.saveOrUpdate
  • org.springframework.orm.hibernate4.HibernateTemplate.updateAll
  • org.springframework.orm.hibernate4.HibernateTemplate.findByCriteria
  • org.springframework.orm.hibernate4.HibernateTemplate.findByValueBean
  • org.springframework.orm.hibernate5.HibernateTemplate.delete
  • org.springframework.orm.hibernate5.HibernateTemplate.update
  • org.springframework.orm.hibernate5.HibernateTemplate.merge
  • org.springframework.orm.hibernate5.HibernateTemplate.save
  • org.springframework.orm.hibernate5.HibernateTemplate.persist
  • org.springframework.orm.hibernate5.HibernateTemplate.replicate
  • org.springframework.orm.hibernate5.HibernateTemplate.get
  • org.springframework.orm.hibernate5.HibernateTemplate.load
  • org.springframework.orm.hibernate5.HibernateTemplate.find
  • org.springframework.orm.hibernate5.HibernateTemplate.refresh
  • org.springframework.orm.hibernate5.HibernateTemplate.loadAll
  • org.springframework.orm.hibernate5.HibernateTemplate.iterate
  • org.springframework.orm.hibernate5.HibernateTemplate.saveOrUpdate
  • org.springframework.orm.hibernate5.HibernateTemplate.updateAll
  • org.springframework.orm.hibernate5.HibernateTemplate.findByCriteria
  • org.springframework.orm.hibernate5.HibernateTemplate.findByValueBean
EclipseLink CRUD APIs
  • org.eclipse.persistence.jpa.JpaEntityManager.find
  • org.eclipse.persistence.jpa.JpaEntityManager.refresh
  • org.eclipse.persistence.jpa.JpaEntityManager.getReference
  • org.eclipse.persistence.jpa.JpaEntityManager.merge
  • org.eclipse.persistence.jpa.JpaEntityManager.persist
  • org.eclipse.persistence.jpa.JpaEntityManager.remove
  • org.eclipse.persistence.jpa.JpaEntityManager.load
  • org.eclipse.persistence.jpa.JpaEntityManager.copy
  • org.eclipse.persistence.sessions.Session.copy
  • org.eclipse.persistence.sessions.Session.readAllObjects
  • org.eclipse.persistence.sessions.Session.readObject
  • org.eclipse.persistence.sessions.Session.refreshObject
  • org.eclipse.persistence.sessions.DatabaseSession.updateObject
  • org.eclipse.persistence.sessions.DatabaseSession.writeAllObjects
  • org.eclipse.persistence.sessions.DatabaseSession.writeObject
  • org.eclipse.persistence.sessions.DatabaseSession.insertObject
  • org.eclipse.persistence.sessions.DatabaseSession.deleteObject
  • org.eclipse.persistence.sessions.DatabaseSession.deleteAllObjects
callLink  Java Method callLink between the caller Java Method and JPA SQL Query / JPQL Query / JPA Unknown SQL Query object
Hibernate Query APIs
  • org.hibernate.Query.list
  • org.hibernate.Query.uniqueResult
  • org.hibernate.Query.iterate
  • org.hibernate.Query.scroll
  • org.hibernate.Query.executeUpdate
  • org.hibernate.query.Query.executeUpdate
  • org.hibernate.query.Query.getSingleResult
  • org.hibernate.query.Query.getResultList
  • org.hibernate.query.Query.getResultStream
  • org.hibernate.query.Query.list
  • org.hibernate.query.Query.scroll
  • org.hibernate.query.Query.stream
  • org.hibernate.query.Query.uniqueResult
  • org.hibernate.query.Query.uniqueResultOptional
  • org.hibernate.query.sqm.internal.QuerySqmImpl.getFirstResult
  • org.hibernate.query.sqm.internal.QuerySqmImpl.executeUpdate
  • org.hibernate.query.sqm.internal.QuerySqmImpl.getSingleResult
  • org.hibernate.query.sqm.internal.QuerySqmImpl.list
  • org.hibernate.query.sqm.internal.QuerySqmImpl.scroll
  • org.hibernate.query.sqm.internal.QuerySqmImpl.uniqueResult
  • org.hibernate.query.sqm.internal.QuerySqmImpl.uniqueResultOptional
  • org.hibernate.query.sqm.internal.QuerySqmImpl.stream
  • org.hibernate.Criteria.list
  • org.hibernate.engine.SessionImplementor.executeNativeUpdate
  • org.hibernate.engine.SessionImplementor.executeUpdate
  • org.hibernate.engine.SessionImplementor.find
  • org.hibernate.engine.SessionImplementor.findBySQL
  • org.hibernate.engine.SessionImplementor.iterate
  • org.hibernate.engine.SessionImplementor.iterateFilter
  • org.hibernate.engine.SessionImplementor.list
  • org.hibernate.engine.SessionImplementor.listCustomQuery
  • org.hibernate.engine.SessionImplementor.listFilter
  • org.hibernate.engine.SessionImplementor.scroll
  • org.hibernate.engine.SessionImplementor.scrollBySQL
  • org.hibernate.engine.spi.SessionImplementor.immediateLoad
  • org.hibernate.engine.spi.SessionImplementor.listCustomQuery
  • org.hibernate.engine.spi.SessionImplementor.scrollCustomQuery
  • org.hibernate.engine.spi.SharedSessionContractImplementor.executeNativeUpdate
  • org.hibernate.engine.spi.SharedSessionContractImplementor.executeUpdate
  • org.hibernate.engine.spi.SharedSessionContractImplementor.iterate
  • org.hibernate.engine.spi.SharedSessionContractImplementor.list
  • org.hibernate.engine.spi.SharedSessionContractImplementor.listCustomQuery
  • org.hibernate.engine.spi.SharedSessionContractImplementor.listFilter
  • org.hibernate.engine.spi.SharedSessionContractImplementor.scroll
  • org.hibernate.engine.spi.SharedSessionContractImplementor.scrollCustomQuery
  • org.hibernate.impl.AbstractSessionImpl.list
  • org.hibernate.impl.AbstractSessionImpl.scroll
  • org.hibernate.internal.SessionImpl.executeNativeUpdate
  • org.hibernate.internal.SessionImpl.executeUpdate
  • org.hibernate.internal.SessionImpl.iterate
  • org.hibernate.internal.SessionImpl.iterateString
  • org.hibernate.internal.SessionImpl.list
  • org.hibernate.internal.SessionImpl.listCustomQuery
  • org.hibernate.internal.SessionImpl.listFilter
  • org.hibernate.internal.SessionImpl.scroll
  • org.hibernate.internal.SessionImpl.scrollCustomQuery
  • org.hibernate.classic.Session.iterate
  • org.hibernate.query.SelectionQuery.getFirstResult
  • org.hibernate.query.SelectionQuery.getMaxResults
  • org.hibernate.query.SelectionQuery.getSingleResult
  • org.hibernate.query.SelectionQuery.getResultList
  • org.hibernate.query.SelectionQuery.getResultStream
  • org.hibernate.query.SelectionQuery.getSingleResultOrNull
  • org.hibernate.query.SelectionQuery.list
  • org.hibernate.query.SelectionQuery.scroll
  • org.hibernate.query.SelectionQuery.uniqueResult
  • org.hibernate.query.SelectionQuery.uniqueResultOptional
  • org.hibernate.query.SelectionQuery.getResultCount
  • org.hibernate.query.MutationQuery.executeUpdate
  • org.hibernate.impl.CriteriaImpl.getFirstResult
  • org.hibernate.impl.CriteriaImpl.list
  • org.hibernate.impl.CriteriaImpl.scroll
  • org.hibernate.impl.CriteriaImpl.uniqueResult
  • org.hibernate.impl.SQLQueryImpl.executeUpdate
  • org.hibernate.impl.SQLQueryImpl.iterate
  • org.hibernate.impl.SQLQueryImpl.list
  • org.hibernate.impl.SQLQueryImpl.scroll
  • org.hibernate.impl.QueryImpl.executeUpdate
  • org.hibernate.impl.QueryImpl.iterate
  • org.hibernate.impl.QueryImpl.list
  • org.hibernate.impl.QueryImpl.scroll
  • net.sf.hibernate.Query.iterate
  • net.sf.hibernate.Query.list
  • net.sf.hibernate.Query.scroll
  • net.sf.hibernate.Query.uniqueResult
  • net.sf.hibernate.impl.CriteriaImpl.getMaxResults
  • net.sf.hibernate.impl.CriteriaImpl.getFirstResult
  • net.sf.hibernate.Criteria.uniqueResult
  • net.sf.hibernate.Criteria.list
  • net.sf.hibernate.impl.CriteriaImpl.getFirstResult
  • net.sf.hibernate.engine.Batcher.executeBatch
  • net.sf.hibernate.engine.SessionImplementor.find
  • net.sf.hibernate.engine.SessionImplementor.findBySQL
  • net.sf.hibernate.engine.SessionImplementor.iterate
  • net.sf.hibernate.engine.SessionImplementor.scroll
  • net.sf.hibernate.impl.AbstractQueryImpl.uniqueResult
  • net.sf.hibernate.impl.BatcherImpl.executeBatch
  • net.sf.hibernate.impl.CriteriaImpl.list
  • net.sf.hibernate.impl.CriteriaImpl.uniqueResult
  • net.sf.hibernate.impl.FilterImpl.iterate
  • net.sf.hibernate.impl.FilterImpl.list
  • net.sf.hibernate.impl.FilterImpl.scroll
  • net.sf.hibernate.impl.QueryImpl.iterate
  • net.sf.hibernate.impl.QueryImpl.list
  • net.sf.hibernate.impl.QueryImpl.scroll
  • net.sf.hibernate.impl.ScheduledCollectionRecreate.execute
  • net.sf.hibernate.impl.ScheduledCollectionRemove.execute
  • net.sf.hibernate.impl.ScheduledCollectionUpdate.execute
  • net.sf.hibernate.impl.ScheduledDeletion.execute
  • net.sf.hibernate.impl.ScheduledIdentityInsertion.execute
  • net.sf.hibernate.impl.ScheduledInsertion.execute
  • net.sf.hibernate.impl.ScheduledUpdate.execute
  • net.sf.hibernate.impl.ScrollableResultsImpl.scroll
  • net.sf.hibernate.impl.SessionImpl.find
  • net.sf.hibernate.impl.SessionImpl.findBySQL
  • net.sf.hibernate.impl.SessionImpl.iterate
  • net.sf.hibernate.impl.SQLQueryImpl.iterate
  • net.sf.hibernate.impl.SQLQueryImpl.list
  • net.sf.hibernate.impl.SQLQueryImpl.scroll
  • net.sf.hibernate.jca.JCASessionImpl.iterate
  • net.sf.hibernate.Session.iterate
Hibernate SubClass APIs
  • org.hibernate.SQLQuery.list
  • org.hibernate.SQLQuery.uniqueResult
  • org.hibernate.SQLQuery.iterate
  • org.hibernate.SQLQuery.scroll
  • org.hibernate.SQLQuery.executeUpdate
  • org.hibernate.query.NativeQuery.uniqueResult
  • org.hibernate.query.NativeQuery.executeUpdate
  • org.hibernate.query.NativeQuery.getSingleResult
  • org.hibernate.query.NativeQuery.getResultList
  • org.hibernate.query.NativeQuery.getResultStream
  • org.hibernate.query.NativeQuery.uniqueResultOptional
  • org.hibernate.query.NativeQuery.list
  • org.hibernate.query.NativeQuery.scroll
  • org.hibernate.query.NativeQuery.stream
  • org.hibernate.procedure.ProcedureCall.getResultList
  • org.hibernate.procedure.ProcedureCall.getResultStream
  • org.hibernate.procedure.ProcedureCall.getSingleResult
  • org.hibernate.procedure.ProcedureCall.executeUpdate
  • org.hibernate.procedure.ProcedureCall.getFirstResult
  • org.hibernate.procedure.ProcedureCall.execute
  • org.hibernate.procedure.ProcedureCall.getUpdateCount
  • org.hibernate.procedure.ProcedureCall.getOutputs
OpenJPA APIs
  • org.apache.openjpa.persistence.OpenJPAQuery.getResultList
  • org.apache.openjpa.persistence.OpenJPAQuery.getResultStream
  • org.apache.openjpa.persistence.OpenJPAQuery.getSingleResult
  • org.apache.openjpa.persistence.OpenJPAQuery.executeUpdate
  • org.apache.openjpa.persistence.OpenJPAQuery.getFirstResult
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.getResultList
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.getSingleResult
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.executeUpdate
  • org.apache.openjpa.persistence.StoredProcedureQueryImpl.execute
  • org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery.compile
  • org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery.getOrderList
  • org.apache.openjpa.persistence.QueryImpl.getSingleResult
  • org.apache.openjpa.persistence.QueryImpl.getResultList
  • org.apache.openjpa.persistence.QueryImpl.getMaxResults
  • org.apache.openjpa.persistence.QueryImpl.executeUpdate
  • org.apache.openjpa.persistence.QueryImpl.getFirstResult
JPA APIs
  • javax.persistence.Query.getResultList
  • javax.persistence.Query.getResultStream
  • javax.persistence.Query.getSingleResult
  • javax.persistence.Query.executeUpdate
  • javax.persistence.Query.getFirstResult
  • javax.persistence.TypedQuery.getResultList
  • javax.persistence.TypedQuery.getResultStream
  • javax.persistence.TypedQuery.getSingleResult
  • javax.persistence.TypedQuery.executeUpdate
  • javax.persistence.StoredProcedureQuery.getResultList
  • javax.persistence.StoredProcedureQuery.getSingleResult
  • javax.persistence.StoredProcedureQuery.executeUpdate
  • javax.persistence.StoredProcedureQuery.execute
  • javax.persistence.criteria.CriteriaQuery.getOrderList
Jakarta APIs
  • jakarta.persistence.TypedQuery.getResultList
  • jakarta.persistence.Query.getResultList
  • jakarta.persistence.Query.getResultStream
  • jakarta.persistence.Query.getSingleResult
  • jakarta.persistence.Query.executeUpdate
  • jakarta.persistence.TypedQuery.getResultList
  • jakarta.persistence.Query.getFirstResult
  • jakarta.persistence.StoredProcedureQuery.execute

  • jakarta.persistence.StoredProcedureQuery.executeUpdate

  • jakarta.persistence.StoredProcedureQuery.getResultList

  • jakarta.persistence.StoredProcedureQuery.getSingleResult

Ebean Query APIs
  • io.ebean.DB.find
  • io.ebean.DB.execute
  • io.ebean.DB.executeCall
  • io.ebean.Database.find
  • io.ebean.Database.execute
  • io.ebean.Database.executeCall
  • io.ebean.Ebean.find
  • io.ebean.EbeanServer.find
  • io.ebean.Ebean.execute
  • io.ebean.Ebean.executeCall
  • io.ebean.Query.update
  • io.ebean.Query.delete
  • io.ebean.Query.findList
  • io.ebean.Query.findOne
  • io.ebean.Query.findSet
  • io.ebean.Query.findMap
  • io.ebean.Query.findStream
  • io.ebean.Query.findIterate
  • io.ebean.Query.findPagedList
  • io.ebean.Query.findCount
  • io.ebean.Query.findEach
  • io.ebean.Query.findEachWhile
  • io.ebean.Query.findFutureCount
  • io.ebean.Query.findFutureIds
  • io.ebean.Query.findFutureList
  • io.ebean.Query.findIds
  • io.ebean.Query.findOneOrEmpty
  • io.ebean.Query.findSingleAttribute
  • io.ebean.Query.findSingleAttributeList
  • io.ebean.ExpressionList.update
  • io.ebean.ExpressionList.delete
  • io.ebean.ExpressionList.findList
  • io.ebean.ExpressionList.findOne
  • io.ebean.ExpressionList.findSet
  • io.ebean.ExpressionList.findMap
  • io.ebean.ExpressionList.findIterate
  • io.ebean.ExpressionList.findPagedList
  • io.ebean.ExpressionList.findCount
  • io.ebean.ExpressionList.findEach
  • io.ebean.ExpressionList.findEachWhile
  • io.ebean.ExpressionList.findFutureCount
  • io.ebean.ExpressionList.findFutureIds
  • io.ebean.ExpressionList.findFutureList
  • io.ebean.ExpressionList.findIds
  • io.ebean.ExpressionList.findOneOrEmpty
  • io.ebean.ExpressionList.findSingleAttribute
  • io.ebean.ExpressionList.findSingleAttributeList
  • io.ebean.SqlQuery.findList
  • io.ebean.SqlQuery.findOne
  • io.ebean.SqlQuery.findEach
  • io.ebean.SqlQuery.findEachRow
  • io.ebean.SqlQuery.findEachWhile
  • io.ebean.SqlQuery.findOneOrEmpty
  • io.ebean.SqlQuery.findSingleAttribute
  • io.ebean.SqlQuery.findSingleAttributeList
  • io.ebean.SqlQuery.findSingleDecimal
  • io.ebean.SqlQuery.findSingleLong
  • io.ebean.SqlUpdate.execute
  • io.ebean.SqlUpdate.executeBatch
  • io.ebean.SqlUpdate.executeGetKey
  • io.ebean.SqlUpdate.executeNow
  • io.ebean.Update.execute
  • io.ebean.UpdateQuery.update
  • io.ebean.DtoQuery.findEach
  • io.ebean.DtoQuery.findEachWhile
  • io.ebean.DtoQuery.findIterate
  • io.ebean.DtoQuery.findList
  • io.ebean.DtoQuery.findOne
  • io.ebean.DtoQuery.findOneOrEmpty
  • io.ebean.DtoQuery.findStream
  • io.ebean.ExtendedServer.findCount
  • io.ebean.ExtendedServer.findEach
  • io.ebean.ExtendedServer.findEachWhile
  • io.ebean.ExtendedServer.findFutureCount
  • io.ebean.ExtendedServer.findFutureIds
  • io.ebean.ExtendedServer.findFutureList
  • io.ebean.ExtendedServer.findIds
  • io.ebean.ExtendedServer.findIterate
  • io.ebean.ExtendedServer.findList
  • io.ebean.ExtendedServer.findMap
  • io.ebean.ExtendedServer.findOne
  • io.ebean.ExtendedServer.findOneOrEmpty
  • io.ebean.ExtendedServer.findPagedList
  • io.ebean.ExtendedServer.findSet
  • io.ebean.ExtendedServer.findSingleAttributeList
  • io.ebean.ExtendedServer.findSingleAttributeSet
  • io.ebean.ExtendedServer.findStream
  • io.ebean.BeanFinder.findAll
  • io.ebean.BeanFinder.findById
  • io.ebean.BeanFinder.findByIdOrEmpty
Spring Hibernate Query APIs
  • org.springframework.orm.hibernate3.HibernateTemplate.bulkUpdate
  • org.springframework.orm.hibernate3.HibernateTemplate.findByNamedParam
  • org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQuery
  • org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQueryAndNamedParam
  • org.springframework.orm.hibernate4.HibernateTemplate.bulkUpdate
  • org.springframework.orm.hibernate4.HibernateTemplate.findByNamedParam
  • org.springframework.orm.hibernate4.HibernateTemplate.findByNamedQuery
  • org.springframework.orm.hibernate4.HibernateTemplate.findByNamedQueryAndNamedParam
  • org.springframework.orm.hibernate5.HibernateTemplate.bulkUpdate
  • org.springframework.orm.hibernate5.HibernateTemplate.findByNamedParam
  • org.springframework.orm.hibernate5.HibernateTemplate.findByNamedQuery
  • org.springframework.orm.hibernate5.HibernateTemplate.findByNamedQueryAndNamedParam
EclipseLink Query APIs
  • org.eclipse.persistence.sessions.Session.executeQuery
  • org.eclipse.persistence.sessions.Session.executeSQL
  • org.eclipse.persistence.sessions.Session.executeSelectingCall
  • org.eclipse.persistence.sessions.Session.executeNonSelectingCall
  • org.eclipse.persistence.sessions.Session.executeNonSelectingSQL
  • org.eclipse.persistence.jpa.JpaQuery.getResultList
  • org.eclipse.persistence.jpa.JpaQuery.getResultStream
  • org.eclipse.persistence.jpa.JpaQuery.getSingleResult
  • org.eclipse.persistence.jpa.JpaQuery.executeUpdate
  • org.eclipse.persistence.jpa.JpaCriteriaBuilder.getOrderList
  • org.eclipse.persistence.queries.DatabaseQuery.execute
  • org.eclipse.persistence.queries.DatabaseQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadQuery.execute
  • org.eclipse.persistence.queries.ReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadQuery.getFirstResult
  • org.eclipse.persistence.queries.DataReadQuery.getFirstResult
  • org.eclipse.persistence.queries.DataReadQuery.execute
  • org.eclipse.persistence.queries.DataReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DataModifyQuery.execute
  • org.eclipse.persistence.queries.DataModifyQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ModifyQuery.execute
  • org.eclipse.persistence.queries.ModifyQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DeleteAllQuery.execute
  • org.eclipse.persistence.queries.DeleteAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DeleteAllQuery.executeDeleteAll
  • org.eclipse.persistence.queries.ModifyAllQuery.execute
  • org.eclipse.persistence.queries.ModifyAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectBuildingQuery.execute
  • org.eclipse.persistence.queries.ObjectBuildingQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectBuildingQuery.getFirstResult
  • org.eclipse.persistence.queries.DeleteObjectQuery.execute
  • org.eclipse.persistence.queries.DeleteObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectLevelModifyQuery.execute
  • org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DirectReadQuery.execute
  • org.eclipse.persistence.queries.DirectReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.DirectReadQuery.getFirstResult
  • org.eclipse.persistence.queries.DoesExistQuery.execute
  • org.eclipse.persistence.queries.DoesExistQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ObjectLevelReadQuery.except
  • org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadAllQuery.execute
  • org.eclipse.persistence.queries.ReadAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReadObjectQuery.execute
  • org.eclipse.persistence.queries.ReadObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ReportQuery.execute
  • org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ResultSetMappingQuery.execute
  • org.eclipse.persistence.queries.ResultSetMappingQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ResultSetMappingQuery.getFirstResult
  • org.eclipse.persistence.queries.UpdateAllQuery.execute
  • org.eclipse.persistence.queries.UpdateAllQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.UpdateObjectQuery.execute
  • org.eclipse.persistence.queries.UpdateObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ValueReadQuery.execute
  • org.eclipse.persistence.queries.ValueReadQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.ValueReadQuery.getFirstResult
  • org.eclipse.persistence.queries.WriteObjectQuery.execute
  • org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery
  • org.eclipse.persistence.queries.WriteObjectQuery.executeCommit
callLink JPA Entity Operation Java Method
Life Cycle annotations
  • javax.persistence.PostLoad
  • javax.persistence.PostPersist
  • javax.persistence.PostRemove
  • javax.persistence.PostUpdate
  • javax.persistence.PrePersist
  • javax.persistence.PreRemove
  • javax.persistence.PreUpdate
  • jakarta.persistence.PostLoad
  • jakarta.persistence.PostPersist
  • jakarta.persistence.PostRemove
  • jakarta.persistence.PostUpdate
  • jakarta.persistence.PrePersist
  • jakarta.persistence.PreRemove
  • jakarta.persistence.PreUpdate
useLink JPA SQL Query / JPQL Query Table / View Created by SQL Analyzer when DDL source files are analyzed
callLink JPA SQL Query / JPQL Query Procedure
useLink JPA Entity Operation Table / View Created by WBS when DDL source files are analyzed by SQL Analyzer
callLink JPA Entity Operation Procedure
useLink JPA SQL Query / JPQL Query Missing Table Created by Missing tables and procedures for JEE extension when the object is not analyzed
callLink JPA SQL Query / JPQL Query Missing Procedure

Code examples

CRUD Operations

Update Operation

Entity using hbm xml

hbm.xml File

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.javainterviewpoint.Employee" table="EMPLOYEE">
        <id name="id" column="ID">
            <generator class="assigned" />
        </id>
        <property name="name" column="NAME" />
        <property name="age" column="AGE" />
        <property name="dept" column="DEPT" />
    </class>
</hibernate-mapping>

Hibernate Update Operation

public void updateEmployeeById(int id,String name)
    {
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        
        Employee employee = (Employee)session.get(Employee.class, id);
        employee.setName(name);
        
        session.update(employee);
        session.getTransaction().commit();
        System.out.println("Employee Updated!!!");
    }

Entity using @Entity annotation

JPA Entity

@Entity
@Table(name = "cast_student", schema = "TEST")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Student implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private String firstName;
    private String lastName;
    private String email;

}

Hibernate Update Operation

public void updateStudent(Integer id, String firstName, String lastName, String email) {
    Transaction transaction = null;
    Session session = null;

    try{
        session = HibernateUtil.getSessionFactory().openSession();
        transaction = session.beginTransaction();

        Student student = session.get(Student.class, id);

        if(firstName != null){
            student.setFirstName(firstName);
        }
        if(lastName != null){
            student.setLastName(lastName);
        }
        if(email != null){
            student.setEmail(email);
        }
        session.update(student);
        transaction.commit();

    }catch (Exception e){
        try{
            transaction.rollback();
        }catch(RuntimeException re){
            re.getMessage();
        }
        throw e;
    }finally {
        if(session != null){
            session.close();
        }
    }
}

Select Operation

Parent Entity with Inheritance Joined

@Table(name = "account_table")
@Entity(name = "Account")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Account {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String owner;
    private double balance;
    private double interestRate;
}

Child Entity

@Entity(name="DebitAccount")
@Table(name = "debit_account_table")
public class CreditAccount extends Account {

    private double creditLimit;
}

JPA Select Operation

public boolean getDebitAccountCRUD(Long theId){
        
        try {
            session = dataSourceFactory.getSessionFactory().openSession();
            beginTransactionIfAllowed(session);
            DebitAccount creditAccount = session.get(DebitAccount.class, theId);
            session.getTransaction().commit();
            
            return true;
        }
}

Add Operation

Secondary Table

@Table(name = "author")
@Entity
@SecondaryTables({
    @SecondaryTable(name = "author_details"),
    @SecondaryTable( name = "author_data")
})
public abstract class Author{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String firstName;
    private double lastName;
    private double category;
}

JPA Add Operation

public static void main(String[] args) {
        Transaction transaction = null;
        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
            // start a transaction
            transaction = session.beginTransaction();
            // save the author object
            Author author = new Author();
            author.setBalance(10000.0);
            author.setInterestRate(10.0);
            author.setOwner("Ramesh");
            author.setCreditLimit(10000.0);
            session.save(author);
        
        }   
    }

Delete Operation

Ebean deleteAll Operation

public void deleteByIds() {

    UserContext.set("fred", "ten_2");

    MtContent a = newContent("title a");
    MtContent b = newContent("title b");


    List<Long> ids = Arrays.asList(a.getId(), b.getId(), 99998L);

    LoggedSql.start();
    int rows = server.deleteAll(MtContent.class, ids);
    assertThat(rows).isEqualTo(2);

    List<String> sql = LoggedSql.stop();
    assertSql(sql.get(0)).contains("delete from mt_content where id=? and tenant_id=?");
  }

SaveOrUpdate

Hibernate SaveOrUpdate Operation

public boolean saveCompany() {
        try {
            final Company theCompany = new Company();
            session = dataSourceFactory.getSessionFactory().openSession();
            beginTransactionIfAllowed(session);
            session.saveOrUpdate(theCompany);
            session.getTransaction().commit();
            logging.setMessage("CompanyDaoImpl -> saving company...");
            return true;
            
        } catch (HibernateException ex) {
            session.getTransaction().rollback();
            logging.setMessage("CompanyDaoImpl Error -> "+ex.getLocalizedMessage());
            return false;
        } finally {
            if(session.isOpen()){session.close();}
        }
    }

Hibernate Query

Raw SQL Query

JPA SQL Query

@Test
public void whenNamedQuery_thenMultipleEntityResult() {
  final Query query = em.createNativeQuery("SELECT e.id, e.name, d.id, d.employeeId, d.dayOfWeek "
                                           + " FROM employee e, schedule_days d "
                                           + " WHERE e.id = d.employeeId", "EmployeeScheduleResults");
  List<Object[]> results = query.getResultList();
  assertEquals(4, results.size());
  assertTrue(results.get(0).length == 2);

  Employee emp = (Employee) results.get(1)[0];
  ScheduledDay day = (ScheduledDay) results.get(1)[1];

  assertTrue(day.getEmployeeId() == emp.getId());
}

CriteriaQuery

Criteria Query

public class HibernateCriteriaBuilderJoinQueryClient {

    public static void main(String[] args) {
        try(Session session = HibernateUtil.getSessionFactory().openSession()) {
            CriteriaBuilder builder = session.getCriteriaBuilder();
            
            CriteriaQuery<Object[]> criteriaQuery = builder.createQuery(Object[].class);
            Root<Employee> empRoot = criteriaQuery.from(Employee.class);
            Root<Department> deptRoot = criteriaQuery.from(Department.class);
            
            criteriaQuery.multiselect(empRoot, deptRoot);
            
            criteriaQuery.where(builder.equal(empRoot.get("department"), deptRoot.get("id")));
            
            // List<Object[]> list = session.createQuery(criteriaQuery).getResultList();

             TypedQuery<Employee> query  = session.createQuery(criteriaQuery);
            
             List<Object[]> list = query.getResultList();

            for (Object[] objects : list) {
                Employee emp = (Employee) objects[0];
                System.out.println(emp.getId() + "\t" + emp.getName());
                System.out.println("----------------------------------");
                Department dept = (Department) objects[1];
                System.out.println(dept.getId() + "\t" + dept.getName());
            }
        } catch(HibernateException e) {
            e.printStackTrace();
        }
    }

}

Named Query / Named Native Query

JPA Entity

@Entity
@Table(name = "Address")
@NamedQueries({ @NamedQuery(name = "@HQL_GET_ALL_ADDRESS", 
            query = "from Address") })
@NamedNativeQueries({ @NamedNativeQuery(name = "@SQL_GET_ALL_ADDRESS", 
            query = "select emp_id, address_line1, city, zipcode from Address") })
public class Address {
    @Id
    @Column(name = "emp_id", unique = true, nullable = false)
    @GeneratedValue(generator = "gen")
    @GenericGenerator(name = "gen", strategy = "foreign", parameters = { @Parameter(name = "property", value = "employee") })
    private long id;

    @Column(name = "address_line1")
    private String addressLine1;

    @Column(name = "zipcode")
    private String zipcode;

    @Column(name = "city")
    private String city;    
}

Named Query

@SuppressWarnings("unchecked")
    public static void main(String[] args) {

        // Prep work
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        Transaction tx = session.beginTransaction();

        query = session.getNamedQuery("@HQL_GET_ALL_ADDRESS");
        List<Address> addressList = query.list();
        for (Address addr : addressList) {
            System.out.println("List of Address::" + addr.getId() + "::"
                    + addr.getZipcode() + "::" + addr.getEmployee().getName());
        }
        
        //Native SQL Named Query Example
        Query query = session.getNamedQuery("@SQL_GET_ALL_ADDRESS");
        List<Object[]> addressObjArray = query.list();
        for(Object[] row : addressObjArray){
            for(Object obj : row){
                System.out.print(obj + "::");
            }
            System.out.println("\n");
        }
        
        query = session.getNamedQuery("SQL_GET_ALL_EMP_ADDRESS");
        addressObjArray = query.list();
        for(Object[] row : addressObjArray){
            Employee e = (Employee) row[0];
            System.out.println("Employee Info::"+e);
            Address a = (Address) row[1];
            System.out.println("Address Info::"+a);
        }
        // rolling back to save the test data
        tx.commit();

        // closing hibernate resources
        sessionFactory.close();
    }

NamedStoredProcedureQuery

JPA Entity

@Entity
@Table(name = "CAR")
@NamedStoredProcedureQueries({@NamedStoredProcedureQuery(name = "findByYearProcedure", procedureName = "FIND_CAR_BY_YEAR", resultClasses = { Car.class }, parameters = { @StoredProcedureParameter(name = "p_year", type = Integer.class, mode = ParameterMode.IN) }) })
@NamedStoredProcedureQuery(name = "getTotalCardsbyModelEntity", procedureName = "GET_TOTAL_CARS_BY_MODEL", resultClasses = { Car.class }, parameters = {@StoredProcedureParameter(mode = ParameterMode.IN, name = "model_in", type = String.class),@StoredProcedureParameter(mode = ParameterMode.OUT, name = "count_out", type = Integer.class)})
public class Car {

    private long id;
    private String model;
    private Integer year;

    public Car(final String model, final Integer year) {
        this.model = model;
        this.year = year;
    }
}

Named Stored Procedure

public void findCarsByYearNoNamed() {
    final StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("FIND_CAR_BY_YEAR", Car.class)
        .registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
        .setParameter(1, 2015);
    storedProcedure.getResultList()
        .forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear()));
}

public void findCarsByModelYearNoNamed() {
    final StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("FIND_CARS_AFTER_YEAR", Car.class)
        .registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
        .setParameter(1, 2015);
    storedProcedure.getResultList()
        .forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear()));
}

JPQL Query

using hbm.xml

hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.javainterviewpoint.Employee" table="EMPLOYEE">
        <id name="id" column="ID">
            <generator class="assigned" />
        </id>
        <property name="name" column="NAME" />
        <property name="age" column="AGE" />
        <property name="dept" column="DEPT" />
    </class>
    
    <query name="HQL_GET_ALL_EMPLOYEE">from Employee</query>

    <query name="HQL_GET_EMPLOYEE_BY_ID">
           <![CDATA[select from Employee where emp_id = :id]]>
    </query>

    <query name="HQL_GET_EMPLOYEE_BY_SALARY">
        <![CDATA[delete from Employee where emp_salary > :salary]]>
    </query>
    
    <sql-query name="SQL_GET_ALL_EMPLOYEE">
        <![CDATA[select emp_id, emp_name, emp_salary from Employee]]>
    </sql-query>
    
    <sql-query name="SQL_GET_ALL_EMP_ADDRESS">
        <![CDATA[select {e.*}, {a.*} from Employee e join Address a ON e.emp_id=a.emp_id]]>
        <return alias="e" class="com.journaldev.hibernate.model.Employee" />
        <return-join alias="a" property="e.address"></return-join>
    </sql-query>
</hibernate-mapping>

JPQL Query

public static void main(String[] args)
    {
        
        // Prep work
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        Transaction tx = session.beginTransaction();
        
        //HQL Named Query Example
        Query query = session.getNamedQuery("HQL_GET_EMPLOYEE_BY_SALARY");
        List<Employee> empList = query.list();
        for (Employee emp : empList) {
            System.out.println("List of Employees::" + emp.getId() + ","
                    + emp.getSalary());
        }
}

using @NamedQueries/@NamedQuery

JPA Entity

@Entity
@Table(name = "Address")
@NamedQueries({ @NamedQuery(name = "@HQL_GET_ALL_ADDRESS", 
            query = "from Address") })
@NamedNativeQueries({ @NamedNativeQuery(name = "@SQL_GET_ALL_ADDRESS", 
            query = "select emp_id, address_line1, city, zipcode from Address") })
public class Address {
    @Id
    @Column(name = "emp_id", unique = true, nullable = false)
    @GeneratedValue(generator = "gen")
    @GenericGenerator(name = "gen", strategy = "foreign", parameters = { @Parameter(name = "property", value = "employee") })
    private long id;

    @Column(name = "address_line1")
    private String addressLine1;

    @Column(name = "zipcode")
    private String zipcode;

    @Column(name = "city")
    private String city;    
}

JPQL Query

public static void main(String[] args) {

        // Prep work
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        Transaction tx = session.beginTransaction();

        Query query = session.getNamedQuery("@HQL_GET_ALL_ADDRESS");
        List<Address> addressList = query.list();
        for (Address addr : addressList) {
            System.out.println("List of Address::" + addr.getId() + "::"
                    + addr.getZipcode() + "::" + addr.getEmployee().getName());
        }
}

Raw JPQL

JPQL Query

private static void displayEntities(EntityManagerFactory emf) {
        //loading all entities
        EntityManager em = emf.createEntityManager();
        Query query = em.createQuery("Select e from Employee e");
        List<Employee> list = (List<Employee>) query.getResultList();
        Employee employee = new Employee("Sara Dorsey", "Admin");
        for (Employee employee : list) {
            //sending to ui for display
            displayEntity(employee);
            print("refreshing employee", employee);
            //now refreshing entity before doing something with it
            em.refresh(employee);
            print("after refreshing employee", employee);
        }
    }

Apache OpenJPA

OpenJPA

OpenJPACriteriaQuery

@SuppressWarnings("unused")
public Page<Author> search(List<SearchCriteria> paramsAuthor, List<SearchCriteria> paramsBooks, Pageable pageable) {
        OpenJPACriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        OpenJPACriteriaQuery<Author> criteriaQuery = criteriaBuilder.createQuery(Author.class);
        CriteriaDelete<Author> criteriaDelete = criteriaBuilder.createCriteriaDelete(Author.class);
        CriteriaUpdate<Author> criteriaUpdate = criteriaBuilder.createCriteriaUpdate(Author.class);
        Root<Author> author = criteriaQuery.from(Author.class);
        Root<Author> author_update = criteriaUpdate.from(Author.class);
        Root<Author> author_delete = criteriaDelete.from(Author.class);
        Join<Author, Books> books = author.join("books", JoinType.INNER);
 
        Predicate predicate = this.predicateRootBuilder(criteriaBuilder, paramsAuthor, author);
        
        if(!paramsBooks.isEmpty())
            predicate = this.predicateJoinBuilder(criteriaBuilder, paramsBooks, books);
        
        Sort sort = pageable.isPaged() ? pageable.getSort() : Sort.unsorted();
        
        if (sort.isSorted())
            criteriaQuery.orderBy(toOrders(sort, author, criteriaBuilder));
        
        criteriaQuery.distinct(true);
        
        criteriaQuery.where(predicate);
        criteriaDelete.where(author.get("first_name"));
        criteriaUpdate.set(author.get("first_name"));
        TypedQuery<Author> typedQuery = entityManager.createQuery(criteriaQuery);
        entityManager.createQuery(criteriaDelete).executeUpdate();
        entityManager.createQuery(criteriaUpdate).executeUpdate();
        if(pageable == null)
            return new PageImpl<Author>(typedQuery.getResultList());
        else {
            Long total = (long) typedQuery.getResultList().size();
            
            // Sets the offset position in the result set to start pagination
            typedQuery.setFirstResult((int) pageable.getOffset());
            
            // Sets the maximum number of entities that should be included in the page
            typedQuery.setMaxResults(pageable.getPageSize());

            List<Author> content = total > pageable.getOffset() ? typedQuery.getResultList() : Collections.<Author> emptyList();

            return new PageImpl<Author>(content, pageable, total);
        }

Ebean Query

Select queries

Select Query

public static void queryCustomers() {
        
        Customer customer = Ebean.find(Customer.class)
            .select("name")
            .fetch("address", "city")
            .where()
            .eq("city", "San Jose")
            .findOne();

    }

Update queries

Update Query

public static void CheckUpdate() {
        // Assuming you have an EbeanServer instance
        // EbeanServer ebeanServer = Ebean.getDefaultServer();

        // Create a query
        Query<Customer> query = Ebean.createQuery(Customer.class);

        // Define the conditions for the delete operation
        query.where().eq("status", "INACTIVE");

        // You can add more conditions as needed

        // Create a transaction
        Transaction transaction = Ebean.beginTransaction();
        try {
            // Execute the delete query with the specified transaction
            int rowsDeleted = query.update(transaction);

            // Commit the transaction
            transaction.commit();

            System.out.println("Rows deleted: " + rowsDeleted);
        } catch (Exception e) {
            // Rollback the transaction in case of an exception
            transaction.rollback();
            e.printStackTrace();
        } finally {
            // End the transaction
            transaction.end();
        }
    }

Delete queries

Delete Query

public static void CheckDelete() {
        // Assuming you have an EbeanServer instance
        // EbeanServer ebeanServer = Ebean.getDefaultServer();

        // Create a query
        Query<Customer> query = Ebean.createQuery(Customer.class);

        // Define the conditions for the delete operation
        query.where().eq("status", "INACTIVE");

        // You can add more conditions as needed

        // Create a transaction
        Transaction transaction = Ebean.beginTransaction();
        try {
            // Execute the delete query with the specified transaction
            int rowsDeleted = query.delete(transaction);

            // Commit the transaction
            transaction.commit();

            System.out.println("Rows deleted: " + rowsDeleted);
        } catch (Exception e) {
            // Rollback the transaction in case of an exception
            transaction.rollback();
            e.printStackTrace();
        } finally {
            // End the transaction
            transaction.end();
        }
    }

Named Query

Named Query

public static void CheckCreateNamedQuery() {
        Query<Customer> query = DB.createNamedQuery(Customer.class, "findByName");
        query.setParameter("name", name);
        List<Customer> customers = query.findList();
    }

Stored Procedure

Stored Procedure

public static void CheckExecute() {   
        // Create a new Database instance
        Database database = DatabaseFactory.create();

        // Prepare the SQL statement for the stored procedure call
        CallableSql callableSql = new CallableSql("{call update_customer(?, ?)}")
                .setParameter(1, 123)        // Set the productId parameter to 123
                .setParameter(2, 99.99);     // Set the new Price parameter to 99.99

        // Execute the Callable SQL statement and get the update count
        int updateCount = database.execute(callableSql);

        // Process the result
        System.out.println("Rows Updated: " + updateCount);
    }

EJB Query

ejb-ql

ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar> 
    <display-name>TradeEJBs</display-name>
    <enterprise-beans>
        <entity>
            <display-name>OrderEJB</display-name>
            <ejb-name>OrderEJB</ejb-name>
            <local-home>org.apache.geronimo.samples.daytrader.ejb.LocalOrderHome</local-home>
            <local>org.apache.geronimo.samples.daytrader.ejb.LocalOrder</local>
            <ejb-class>org.apache.geronimo.samples.daytrader.ejb.OrderBean</ejb-class>
            <persistence-type>Container</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>false</reentrant>
            <cmp-version>2.x</cmp-version>
            <abstract-schema-name>Orders</abstract-schema-name>
            <cmp-field>
                <field-name>orderFee</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>completionDate</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>orderType</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>orderStatus</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>price</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>quantity</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>openDate</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>orderID</field-name>
            </cmp-field>
            <primkey-field>orderID</primkey-field>
            <security-identity>
                <description/>
                <use-caller-identity/>
            </security-identity>
            <query>
                <description/>
                <query-method>
                    <method-name>findAll</method-name>
                    <method-params/>
                </query-method>
                <result-type-mapping>Local</result-type-mapping>
                <ejb-ql>SELECT OBJECT(o) FROM Orders o</ejb-ql>
            </query>
            <query>
                <description/>
                <query-method>
                    <method-name>findClosedOrders</method-name>
                    <method-params>
                        <method-param>java.lang.String</method-param>
                    </method-params>
                </query-method>
                <result-type-mapping>Local</result-type-mapping>
                <ejb-ql>SELECT OBJECT(o) FROM Orders o WHERE
                    o.orderStatus = 'closed' AND
                    o.account.profile.userID  = ?1</ejb-ql>
            </query>
            <query>
                <description/>
                <query-method>
                    <method-name>findByUserID</method-name>
                    <method-params>
                        <method-param>java.lang.String</method-param>
                    </method-params>
                </query-method>
                <result-type-mapping>Local</result-type-mapping>
                <ejb-ql>SELECT OBJECT(o) FROM Orders o WHERE
                    o.account.profile.userID  = ?1 ORDER BY o.orderID DESC</ejb-ql>
            </query>
            <query>
                <query-method>
                    <method-name>findByPrimaryKeyForUpdate</method-name>
                    <method-params>
                        <method-param>java.lang.Integer</method-param>
                    </method-params>
                </query-method>
                <result-type-mapping>Local</result-type-mapping>
                <ejb-ql>SELECT OBJECT(o) FROM Orders o WHERE o.orderID = ?1</ejb-ql>
            </query>
            <query>
                <query-method>
                    <method-name>findClosedOrdersForUpdate</method-name>
                    <method-params>
                        <method-param>java.lang.String</method-param>
                    </method-params>
                </query-method>
                <result-type-mapping>Local</result-type-mapping>
                <ejb-ql>SELECT OBJECT(o) FROM Orders o WHERE
                    o.orderStatus = 'closed' AND
                    o.account.profile.userID  = ?1</ejb-ql>
            </query>
        </entity>
    </enterprise-beans>
</ejb-jar>

EJB

public interface LocalOrderHome extends EJBLocalHome {

    public LocalOrder create (int orderID, LocalAccount account, LocalQuote quote, LocalHolding holding, String orderType, double quantity)
        throws CreateException;
        
    public LocalOrder create (Integer orderID, LocalAccount account, LocalQuote quote, LocalHolding holding, String orderType, double quantity)
        throws CreateException;

    
    public LocalOrder findByPrimaryKeyForUpdate (Integer orderID)
        throws FinderException;
        
    public LocalOrder findByPrimaryKey (Integer orderID)
        throws FinderException;

    public Collection findAll() 
        throws FinderException;

    public Collection findByUserID (String userID)
        throws FinderException;

    public Collection findClosedOrders(String userID)
        throws FinderException; 

    public Collection findClosedOrdersForUpdate(String userID)
        throws FinderException;     
}

orion-ejb-jar

ejb-jar.xml

<?xml version = '1.0' encoding = 'windows-1252'?>
<ejb-jar>
  <enterprise-beans>
    <session>
      <description>Session Bean ( Stateless )</description>
      <display-name>StudentCourseEJB</display-name>
      <ejb-name>StudentCourseEJB</ejb-name>
      <home>com.jdevbook.chap6.ejbapp.StudentCourseEJBHome</home>
      <remote>com.jdevbook.chap6.ejbapp.StudentCourseEJB</remote>
      <ejb-class>com.jdevbook.chap6.ejbapp.StudentCourseEJBBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <ejb-local-ref>
        <ejb-ref-name>ejb/local/Course</ejb-ref-name>
        <ejb-ref-type>Entity</ejb-ref-type>
        <local-home>com.jdevbook.chap6.ejbapp.CourseLocalHome</local-home>
        <local>com.jdevbook.chap6.ejbapp.CourseLocal</local>
        <ejb-link>Course</ejb-link>
      </ejb-local-ref>
      <ejb-local-ref>
        <ejb-ref-name>ejb/local/Student</ejb-ref-name>
        <ejb-ref-type>Entity</ejb-ref-type>
        <local-home>com.jdevbook.chap6.ejbapp.StudentLocalHome</local-home>
        <local>com.jdevbook.chap6.ejbapp.StudentLocal</local>
        <ejb-link>Student</ejb-link>
      </ejb-local-ref>
    </session>
    <entity>
      <description>Entity Bean ( CMP )</description>
      <display-name>Course</display-name>
      <ejb-name>Course</ejb-name>
      <local-home>com.jdevbook.chap6.ejbapp.CourseLocalHome</local-home>
      <local>com.jdevbook.chap6.ejbapp.CourseLocal</local>
      <ejb-class>com.jdevbook.chap6.ejbapp.CourseBean</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>java.lang.Long</prim-key-class>
      <reentrant>False</reentrant>
      <cmp-version>2.x</cmp-version>
      <abstract-schema-name>Course</abstract-schema-name>
      <cmp-field>
        <field-name>courseId</field-name>
      </cmp-field>
      <cmp-field>
        <field-name>courseName</field-name>
      </cmp-field>
      <primkey-field>courseId</primkey-field>
      <query>
        <query-method>
          <method-name>findAll</method-name>
          <method-params/>
        </query-method>
        <ejb-ql>select object(o) from Course o</ejb-ql>
      </query>
    </entity>
    <entity>
      <description>Entity Bean ( CMP )</description>
      <display-name>Student</display-name>
      <ejb-name>Student</ejb-name>
      <local-home>com.jdevbook.chap6.ejbapp.StudentLocalHome</local-home>
      <local>com.jdevbook.chap6.ejbapp.StudentLocal</local>
      <ejb-class>com.jdevbook.chap6.ejbapp.StudentBean</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim