hibernate - Hibernate - 映射问题
问题描述
我遇到了休眠映射的问题,
我的数据库被设计成一对多。
一 门课程/教师/学生,可以有多个 寄存器
因此,如果我们以学生为例,这将是我的映射
import java.util.List;
import javax.persistence.*;
@Entity //here you define your class as entity which means is connected to the database
@Table(name="students") //here you are referring the SQL table
public class Student {
@Id //to define it is a primary key
@Column(name="student_id") // name must be exact as the column in SQL
private String studentID;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
@Column(name="date_of_birth")
private String dateOfBirth;
@Column(name="email")
private String email;
//Establishing Mapping
@OneToMany(mappedBy="student_id",
cascade=CascadeType.ALL,targetEntity = Student.class, fetch = FetchType.LAZY)
List <Register> registers;
这将是注册类,它将是注册表的实体。
import javax.persistence.*;
@Entity //here you define your class as entity which means is connected to the database
@Table(name="REGISTRATION") //here you are referring the SQL table
public class Register {
@Column(name="course_id")
String course_id;
@Column(name="course_name")
String course_name;
@Column(name="schedule")
String schedule;
@Id
@Column(name="student_id")
String student_id;
@Column(name="employee_id")
String employee_id;
@ManyToOne(cascade=CascadeType.DETACH.MERGE.PERSIST.REFRESH.REMOVE,targetEntity = Course.class, fetch = FetchType.LAZY)
@JoinTable(name="students",joinColumns=@JoinColumn(name="student_id"),inverseJoinColumns=@JoinColumn(name="student_id"))
Student student;
@ManyToOne(cascade=CascadeType.DETACH.MERGE.PERSIST.REFRESH.REMOVE,targetEntity = Course.class, fetch = FetchType.LAZY)
@JoinTable(name="courses",joinColumns=@JoinColumn(name="course_id"),inverseJoinColumns=@JoinColumn(name="course_id"))
Course course;
@ManyToOne(cascade=CascadeType.DETACH.MERGE.PERSIST.REFRESH.REMOVE,targetEntity = Course.class, fetch = FetchType.LAZY)
@JoinTable(name="teacher",joinColumns=@JoinColumn(name="employee_id"),inverseJoinColumns=@JoinColumn(name="employee_id"))
Teacher teacher;
我的输出是:
Exception in thread "AWT-EventQueue-0" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on model.Register.course references an unknown entity: model.Course
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:97)
任何形式的帮助将不胜感激。
解决方案
推荐阅读
- google-bigquery - Bigquery fetch records based on their updation date
- postgresql - 如何查看为使用 spark 从数据库中并行读取每个分区的数据而生成的多个查询
- amazon-web-services - CodePipeline - 为什么在用作源时必须在 S3 存储桶上启用版本控制?
- r - Dockerized Shiny Appp 总是从代码中显示 Hello World 而不是实际的应用程序,而在 RStudio 中它是完美的
- javascript - 无法读取 onkeypress 事件中未定义的属性值
- regex - 替换第二个引号中的字符串?
- java - 如何将弹性 4j 速率限制在内存阈值之上?
- docker - 复制失败:没有这样的文件或目录
- blockchain - 权益证明:哪个节点选择下一个区块验证者?
- laravel - 一小时间隔 - Laravel