Certification
SCBCD
SCBCD Study Notes : Chapter 6 : Component Contract for Container-Managed Persistence (CMP) (Part 3)
SCBCD Study Notes : Chapter 6 : Component Contract for Container-Managed Persistence (CMP) (Part 3) - Page 2
Identify correctly-implemented deployment descriptor elements for a CMP bean (including container-managed relationships).
The deployment descriptor is part of the contract between the ejb-jar file producer and consumer.
The entity element declares an entity bean. The declaration consists of:
An optional set of query declarations for finder and select methods for an entity bean with cmp-version 2.x :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< ! ELEMENT entity (description?, display-name?, small-icon?, ;;;;;;;;;;;;;;;;
;;;;;;;large-icon?, ejb-name, home?, remote?, local-home?, ;;;;;;;;;;;;;;;;;;;
;;;;;;;local?, ejb-class, persistence-type, prim-key-class, ;;;;;;;;;;;;;;;;;;
;;;;;;;reentrant, cmp-version?, abstract-schema-name?, ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;cmp-field*, primkey-field?, env-entry*, ejb-ref*, ;;;;;;;;;;;;;;;;;;;;;
;;;;;;;ejb-local-ref*, security-role-ref*, security-identity?, ;;;;;;;;;;;;;;;
;;;;;;;resource-ref*, resource-env-ref*, query*) >;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Mandatory elements are:
Example of Entity Bean deployment descriptor (with relationship):

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< ejb-jar >;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< enterprise-beans > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< entity > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< ejb-name >ReservationEJB< /ejb-name > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< local-home >com.titan.reservation.ReservationHomeLocal< /local-home>
;;;;;;;< local >com.titan.reservation.ReservationLocal< /local > ;;;;;;;;;;;;;
;;;;;;;< ejb-class >com.titan.reservation.ReservationBean< /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 >Reservation< /abstract-schema-name > ;;;;;;;;;;
;;;;;;;< cmp-field >< field-name >id< /field-name >< /cmp-field > ;;;;;;;;;;ll
;;;;;;;< cmp-field >< field-name >amountPaid< /field-name >< /cmp-field > ;;ll
;;;;;;;< cmp-field >< field-name >date< /field-name >< /cmp-field > ;;ll;;ll;;
;;;;;;;< primkey-field >id< /primkey-field > ;;ll;;ll;;ll;;ll;;ll;;ll;;ll;;;;;
;;;;;;;< security-identity >< use-caller-identity/ >< /security-identity > ;;;
;;;;;;;< query > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< query-method > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< method-name >findWithPaymentGreaterThan< /method-name>
;;;;;;;;;;;;;;;;;;;;;< method-params > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;< method-param >java.lang.Double< /method-param >
;;;;;;;;;;;;;;;;;;;;;< /method-params > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /query-method > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< ejb-ql > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;SELECT OBJECT( r ) FROM Reservation r ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;WHERE r.amountPaid > ?1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /ejb-ql > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< /query > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< /entity > lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll;
< entity > lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll;;
;;;;;;;< ejb-name >CabinEJB< /ejb-name > lllllllllllllllllllllllllllllllllll;;
;;;;;;;< local-home >com.titan.cabin.CabinHomeLocal< /local-home > lllllllll;;
;;;;;;;< local >com.titan.cabin.CabinLocal< /local > lllllllll;;lllllllll;;;;;
;;;;;;;< ejb-class >com.titan.cabin.CabinBean< /ejb-class > lllllllll;;llllll;
;;;;;;;< persistence-type >Container< /persistence-type > lllllllll;;llllll;;;
;;;;;;;< prim-key-class >java.lang.Integer< /prim-key-class > lllll;;llllll;;;
;;;;;;;< reentrant >False< /reentrant > lllll;;llllll;;;lllll;;llllll;;;;;;;;;
;;;;;;;< cmp-version >2.x< /cmp-version > lllllllllllllllllllllllllllllllllll;
;;;;;;;< abstract-schema-name >Cabin< /abstract-schema-name > lllllllllllllll;
;;;;;;;< cmp-field >< field-name >id< /field-name >< /cmp-field > llllllllllll
;;;;;;;< cmp-field >< field-name >name< /field-name >< /cmp-field > llllllllll
;;;;;;;< cmp-field >< field-name >deckLevel< /field-name >< /cmp-field > lllll
;;;;;;;< cmp-field >< field-name >bedCount< /field-name >< /cmp-field > llllll
;;;;;;;< primkey-field >id< /primkey-field > ;;;;;;;;;;;;;;;;;;;;;;;;lllllllll
;;;;;;;< security-identity >< use-caller-identity/ >< /security-identity > lll
< /entity > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;lllllllll;
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;lllllllllllllllll;
< /enterprise-beans > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< relationships > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< ejb-relation > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< ejb-relation-name >Cabin-Reservation< /ejb-relation-name > ;;;
;;;;;;;;;;;;;;< ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;Cabin-has-many-Reservations ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< multiplicity >Many< /multiplicity > ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;< ejb-name >CabinEJB< /ejb-name > ;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;Reservation-has-many-Cabins ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< multiplicity >Many< /multiplicity > ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;< ejb-name >ReservationEJB< /ejb-name > ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< cmr-field > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;< cmr-field-name >cabins< /cmr-field-name > ;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;< cmr-field-type >java.util.Set< /cmr-field-type >
;;;;;;;;;;;;;;;;;;;;;< /cmr-field > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< /ejb-relation > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< /relationships > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< /ejb-jar > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
_________________
Author: Mikalai Zaikin. Please Click Here to visit Authors site for any updates and changes to the study notes.
First Page: SCBCD Study Notes : Chapter 6 : Component Contract for Container-Managed Persistence (CMP) (Part 3)