Code subject: Id reference annotation relationship
Posted: Tue Apr 20, 2010 2:23 pm
Joined: Tue Mar 27, 2007 10:55 pm Posts: 2103 Location: Earth Has thanked: 39 time Have thanks: 56 time
Id reference annotation relationship: One of the alternative ways to do a many to one relationship in JPA entity is to add annotation to Id and referenced object. The following three classes show this relation .
/** * @author codemiles * */ @Entity @Table(name="COMMENT") @IdClass(Comment_Id.class) public class Comment implements java.io.Serializable{ /** * */ private static final long serialVersionUID = 1L; @Id private int Id; private String title; private Date creationDate; private Date modifedDate; private String commentBody; @Id @Column(name ="TOPIC_ID", insertable = false, updatable = false) private int topic_id; @ManyToOne @JoinColumn(name ="TOPIC_ID") private Topic topic; public int getId(){ return Id; } public void setId(int id){ this.Id = id; } @Column(name="TITLE") public String getTitle(){ return title; } public void setTitle(String title){ this.title = title; } @Column(name="CREATION_DATE") public Date getCreationDate(){ return creationDate; } public void setCreationDate(Date creationDate){ this.creationDate = creationDate; } @Column(name="MODIFED_DATE") public Date getModifedDate(){ return modifedDate; } public void setModifedDate(Date modifedDate){ this.modifedDate = modifedDate; } public void setCommentBody(String commentBody){ this.commentBody = commentBody; } @Column(name="COMMENT_BODY") public String getCommentBody(){ return commentBody; } public void setTopic_id(int topic_id){ this.topic_id = topic_id; } public int getTopic_id(){ return topic_id; } public void setTopic(Topic topic){ this.topic = topic; } public Topic getTopic(){ return topic; } }
Id class which is used in the relationship :
Code:
package com.codemiles.jpa;
/** * @author codemiles * */ public class Comment_Id implements java.io.Serializable{
/** * */ private static final long serialVersionUID = 1L; private int topic_id; public Comment_Id(){ } public Comment_Id(int topic_Id){ this.topic_id=topic_Id; } public void setTopic_id(int topic_id){ this.topic_id = topic_id; } public int getId(){ return topic_id; } public boolean equals(Object o){ return ((o instanceof Comment_Id)&&
topic_id ==((Comment_Id) o).getId());
}
public int hashCode(){ return topic_id ; }
}
_________________ Currenlty programming with : java , html , php , and javascript . (OCJP-6 certified )