联合外键作主键 @EmbeddwdId

晨曦之光 发布于 2012/04/10 18:48
阅读 98
收藏 0

嵌入类:

  1. package com.dlnu.model;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. import javax.persistence.Embeddable;  
  6. import javax.persistence.JoinColumn;  
  7. import javax.persistence.ManyToOne;  
  8. @Embeddable  
  9. public class Name implements Serializable {  
  10.   
  11.     private static final long serialVersionUID = 1L;  
  12.   
  13.     private Course course;  
  14.   
  15.     private Student student;  
  16.   
  17.     public Name() {  
  18.     }  
  19.   
  20.     public Name(Course course, Student student) {  
  21.         this.course = course;  
  22.         this.student = student;  
  23.   
  24.     }  
  25.   
  26.     @ManyToOne  
  27.     @JoinColumn(name = "courseId", referencedColumnName = "cno",nullable=true)  
  28.     public Course getCourse() {  
  29.         return course;  
  30.     }  
  31.     @ManyToOne  
  32.     @JoinColumn(name = "studentId", referencedColumnName = "sno")  
  33.     public Student getStudent() {  
  34.         return student;  
  35.     }  
  36.   
  37.     public void setStudent(Student student) {  
  38.         this.student = student;  
  39.     }  
  40.   
  41.     public void setCourse(Course course) {  
  42.         this.course = course;  
  43.     }  
  44.   
  45.     public boolean equals(Object obj) {  
  46.   
  47.         if (this == obj) {  
  48.             return true;  
  49.         }  
  50.         if (obj.getClass() == Name.class) {  
  51.             Name target = (Name) obj;  
  52.             if (target.getCourse().equals(course)  
  53.                     && target.getStudent().equals(student)) {  
  54.                 return true;  
  55.             }  
  56.         }  
  57.         return false;  
  58.     }  
  59.   
  60.     public int hashCode() {  
  61.   
  62.         return course.hashCode() + student.hashCode() * 17;  
  63.     }  
  64.   
  65. }  

 

实体类:

  1. package com.dlnu.model;  
  2.   
  3. import javax.persistence.EmbeddedId;  
  4. import javax.persistence.Entity;  
  5.   
  6. @Entity  
  7. public class SC {  
  8.   
  9.       
  10.     private Name name;  
  11.   
  12.     private Double grade;  
  13.       
  14.     public Double getGrade() {  
  15.         return grade;  
  16.     }  
  17.       
  18.     @EmbeddedId  
  19.     public Name getName() {  
  20.         return name;  
  21.     }  
  22.     public void setGrade(Double grade) {  
  23.         this.grade = grade;  
  24.     }  
  25.     public void setName(Name name) {  
  26.         this.name = name;  
  27.     }  
  28.   
  29. }  

原文链接:http://blog.csdn.net/chengchanglun/article/details/7441038
加载中
返回顶部
顶部