Use of EJB 2.x entity beans
Although the use of EJB 2. x entity beans in HCL Commerce is possible, it is not recommended.
Local interfaces and Container-Managed Relationships, which are the two main features provided by the EJB 2. x specification, will not benefit HCL Commerce users for the following reasons:
- Local interfaces
- The performance increase gained by local interfaces is already obtained through the WebSphere Application Server feature that allows pass-by-reference. For more information about pass-by-reference, seeObject Request Broker tuning guidelines topic.
- Container-Managed Relationships
- To minimize complexity in the object model, rather than using the Container-Managed Relationships, an object relationship between enterprise beans can be established by adding explicit getter methods to the enterprise beans that return access beans.
If you choose to create EJB 2. x entity beans, you should be aware of the following limitations and stipulations:
- All entity beans referenced by EJB Query Language (EJBQL) must be in the same EJB module.
- All entity beans referenced in EJBQL must be at 2. x level. EJBQL cannot reference entity beans which are still at EJB 1.1 level.
- Since most HCL Commerce EJBs are at EJB 1.1 level, you cannot reference most HCL Commerce entity beans from 2. x finders.
- HCL Commerce uses access beans in its programming model, and access beans do not support local interfaces and Container-Managed Relationships. To use local interfaces, instead of using access beans, you must perform home lookup directly and cache it yourself for performance purposes.
- To use optimistic locking, you must implement optimistic locking as described in Optimistic locking with the
following exceptions:
- You must extend ECAbstractEntityBean.
- You must set the access intent to wsOptimisticPredicate.