I’m currently coming (back) up to speed with EJB and while I was away it changed drastically (so far for the better). However, I’ve come across a concept that I am struggling with and would like to understand better as it seems to be used in our (where I work, not me and all the voices in my head) code quite a bit.
Here’s the example I’ve found in a book. It’s part of an example showing how to use the @EmbeddedId annotation:
@Entity
public class Employee implements java.io.Serializable
{
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="lastName", column=@Column(name="LAST_NAME"),
@AttributeOverride(name="ssn", column=@Column(name="SSN"))
})
private EmbeddedEmployeePK pk;
...
}
The EmbeddedEmployeePK class is a fairly straightforward @Embeddable class that defines a pair of @Columns: lastName and ssn.
Oh, and I lifted this example from O’Reilly’s Enterprise JavaBeans 3.1 by Rubinger & Burke.
Thanks in advance for any help you can give me.
It’s saying that the attributes that make up the embedded id may have predefined (through explicit or implicit mappings) column names. By using the
@AttributeOverrideyou’re saying “ignore what other information you have with regard to what column it is stored in, and use the one I specify here”.