这是一个一对多的单向映射。我正在通过
生成表格
hbm2ddl.auto =更新。
它工作正常,但是在第一次执行时就产生了问题,即生成表并对其进行更改并添加FK constarints。
但是,对于每个新插入,在第一次执行之后,它会首先生成一个alter table查询。但是应该只在第一次执行时才这样做。
Student.java
----------------
@Entity
@Table(name="STUDENT_DETAILS")
public class Student {
private int studentId;
private String name;
private long mobile;
private List<Courses> course;
@Id
@GenericGenerator(name="gen1",strategy="increment")
@GeneratedValue(generator="gen1")
@Column(name="STUDENT_ID")
@Type(type="int")
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
@Column(name="NAME")
@Type(type="string")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="MOBILE")
@Type(type="long")
public long getMobile() {
return mobile;
}
public void setMobile(long mobile) {
this.mobile = mobile;
}
@OneToMany(targetEntity=Courses.class,fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name="STUDENT_ID", referencedColumnName="STUDENT_ID")
public List<Courses> getCourse() {
return course;
}
public void setCourse(List<Courses> course) {
this.course = course;
}
}
Courses.java
-----------------
@Entity
@Table(name="COURSE_DETAILS")
public class Courses {
private int courseId;
private String courseName;
private int duration;
@Id
@GenericGenerator(name="gen1",strategy="increment")
@GeneratedValue(generator="gen1")
@Column(name="COURSE_ID")
@Type(type="int")
public int getCourseId() {
return courseId;
}
public void setCourseId(int courseId) {
this.courseId = courseId;
}
@Column(name="COURSE_NAME")
@Type(type="string")
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
@Column(name="DURATION")
@Type(type="int")
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
}
stcktrace
--------------
alter table COURSE_DETAILS
add constraint FK1qwr6ohlw0477rlta2pn915g7
foreign key (STUDENT_ID)
references STUDENT_DETAILS (STUDENT_ID)
每次执行新的插入操作时,都会生成上述查询。
我是否错过了导致以下问题的东西?
会导致性能问题吗?