I have a domain object annotated like this for hibernate support.
@Entity
@Table(name = "INPUT")
public class AppInput {
/**
* Unique id for this request
*/
@Id
@GeneratedValue
@Column(name = "INPUT_ID")
private long requestId;
/**
*
*/
@Column(name = "EMAIL_ID")
private String emailId;
/**
*
*/
@Column(name = "REQUEST_DATE")
private Date requestDate;
/**
*
*/
@Column(name = "INPUT_STATUS")
private char status;
/**
*
*/
@Column(name = "EXPECTED_ORDER_DATE")
private Date expectedOrdDt;
//Getter and setters
}
The property emailId is a foreign key referring to say emailId column in User table. Lets say i add a property like this to AppInput.java
private User userDetails;
How do i annotate this so that, whenever i fetch AppInput from db, the corresponding user details also get populated?
The property emailId is a foreign key referring to say emailId column in User table.
Then don't add the emailId property, add a User.
(...) How do i annotate this so that, whenever i fetch AppInput from db, the corresponding user details also get populated?
Not sure since it could be a ManyToOne or OneToOne but I'll assume it's a ManyToOne:
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="USERDETAILS_EMAIL_ID", referencedColumnName="EMAIL_ID")
private User userDetails;
The fetch annotation element is for demonstration purpose, EAGER being actually the default value. The name and referencedColumn annotation elements in JoinColumn are also optional. Below a short summary from the JPA specification:
11.1.21 JoinColumn Annotation
The
JoinColumnannotation is used to specify a column for joining an entity association or element collection.Table 20 lists the annotation elements that may be specified for the
JoinColumnannotation and their default values.If the
JoinColumnannotation itself is defaulted, a single join column is assumed and the default values described in Table 20 apply.The
nameannotation element defines the name of the foreign key column. The remaining annotation elements (other thanreferencedColumnName) refer to this column and have the same semantics as for theColumnannotation.If the
referencedColumnNameelement is missing, the foreign key is assumed to refer to the primary key of the referenced table.
See the Table 20 in the spec for complete and exhaustive details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With