我正在使用hibernate处理一对多关系。
profesor.java
FileListCopy
我的教授表已经与类表关系多对多。现在我试图将它与post表连接为一对多。
我的帖子模型如下:
post.java
@Entity
public class Profesor {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@ManyToMany(mappedBy = "profesors", fetch = FetchType.EAGER, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
private List<Classes> classes;
@OneToMany(mappedBy="profesor", fetch = FetchType.EAGER, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
@Fetch(value = FetchMode.SUBSELECT)
private List<Post> post;
}
以下是我的表格在数据库中的显示方式。
我收到以下错误:
@Entity
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", unique = true, nullable = false)
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn (name="profesor_id",referencedColumnName="id",nullable=false,unique=true)
private Profesor profesor;
}
我做错了什么?
SOLUTION:
首先我创建了没有profesor_id的post表。当我开始在表之间创建关系时,我添加了profesor_id,然后将profesor_id设置为null。当我清理桌子时,我可以正常运行我的应用程序。
答案 0 :(得分:1)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn (name="profesor_id",referencedColumnName="id",unique=true)
private Profesor profesor;