我只是学习 Spring MVC 和 Hibernate 技术的初学者。我正在尝试使用休眠来访问我的数据库,并且我正在使用注释方法将我的 bean 配置到数据库。我正在尝试建立一对多的关系,这让我犯了错误。
基本上我是一个“一次使用可以发布多个测验”的关系
配置休眠时的错误是:
org.hibernate.AnnotationException:使用@OneToMany 或@ManyToMany 以未映射类为目标:bean.User.quizPosted[bean.Quiz] 使用@OneToMany 或@ManyToMany 以未映射类为目标:bean.User .quizPosted[bean.Quiz]
我的两个豆子的代码是:
用户.java
package bean;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name="User", uniqueConstraints ={@UniqueConstraint(columnNames="userName"})})
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne(targetEntity=Person.class)
@JoinColumn(name="PersonId")
private Person person;
@Column(name="userName")
private String userName;
@Column(name="password")
private String password;
@Column(name="role")
private String role;
@OneToMany(mappedBy = "postedBy")
private Set<Quiz> quizPosted = new HashSet<Quiz>();
@OneToMany(mappedBy = "userId")
private Set<User_Quiz> user_Quizs = new HashSet<User_Quiz>();
}
和 quiz.java
package bean;
import java.sql.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "Quiz")
public class Quiz {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer quizId;
@Column(name = "duration")
private Integer duration;
@Column(name = "date")
private Date date;
@ManyToOne(targetEntity = User.class)
@JoinColumn(name = "postedBy")
private User postedBy;
@OneToMany(mappedBy="quizId")
private Set<User_Quiz> user_Quizs = new HashSet<User_Quiz>();
}