CHAPTER 6 n MAPPING WITH ANNOTATIONS (Web design rates) 115 n

CHAPTER 6 n MAPPING WITH ANNOTATIONS 115 n MAPPING WITH ANNOTATIONS 115 Neither Hibernate nor the EJB 3 standard supports mapping an embedded object across more than one table. In practice, if you want this sort of persistence for your embedded entity, you will usually be better off making it a first-class entity (i.e., not embedded) with its own @Entity marker and @Idannotations, and then mapping it via a conventional one-to-one association, as explained in the next section. Mapping a Conventional One-to-One Association There is nothing intrinsically wrong with mapping a one-to-one association between two entities where one is not a component of (i.e., embedded into) the other. The relationship is often somewhat suspect, however. You should give some thought to using the embedded technique described previously before using the @OneToOne annotation. Assuming that you are resolute on declaring the association in this way (perhaps because you anticipate converting it to a one-to-many or many-to-one relationship in the foreseeable future), applying the annotation is quite simple all of the attributes are optional. Listing 6-14 shows how simply a relationship like this might be declared. Listing 6-14. Declaring a Simple One-to-One Relationship @OneToOne public Address getAddress() { return this.address; } The @OneToOne annotation permits the following optional attributes to be specified: targetEntity can be set to the class of an entity storing the association. If left unset, the appropriate type will be inferred from the field type, or the return type of the property s getter. cascade can be set to any of the members of the javax.persistence.CascadeType enumeration. It defaults to none being set. See the Cascading Operations sidebar for a discussion of these values. fetch can be set to the EAGER or LAZY members of FetchType. optional indicates whether the value being mapped can be null. mappedBy indicates that a bidirectional one-to-one relationship is owned by the named entity.1 The owning entity contains the primary key of the subordinate entity. Mapping a Many-to-One or One-to-Many Association A many-to-one association and a one-to-many association are the same association seen from the perspective of the owning and subordinate entities, respectively. 1. An association is bidirectional if each entity maintains a property or field representing its end of the same relationship. For example, if our Address class maintained a reference to the Publisher located there, and the Publisher class maintained a reference to its Address, then the association would be bidirectional.
Note: In case you are looking for affordable webhost to host and run your servlet application check Vision ecommerce web hosting services

Leave a Reply