JPA@sequenceGenerate@OneToMany
我是JPA世界的新手,我有以下问题 我有一个类,它有一个生成的classId。这个类有一个学生列表,其中一个列(在学生中)是classId 我实现了这个,但是学生表的classId在数据库中显示为空(其余的都可以) 有人能帮忙吗 提前谢谢 这是代码JPA@sequenceGenerate@OneToMany,jpa,one-to-many,Jpa,One To Many,我是JPA世界的新手,我有以下问题 我有一个类,它有一个生成的classId。这个类有一个学生列表,其中一个列(在学生中)是classId 我实现了这个,但是学生表的classId在数据库中显示为空(其余的都可以) 有人能帮忙吗 提前谢谢 这是代码 @Entity @Table(name = "class") public class Class implements Serializable { private Long classId; private List<S
@Entity
@Table(name = "class")
public class Class implements Serializable {
private Long classId;
private List<Student> student;
@Id
@SequenceGenerator(name = "class_id_gen", sequenceName = "seq_class_id", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "class_id_gen")
@Column(name = "class_id", unique = true, nullable = false)
public Long getClassId() {
return classId;
}
@OneToMany(mappedBy = "class", cascade = CascadeType.ALL)
public List<Student> getStudent() {
return this.Student;
}
}
@Entity
@Table(name = "student")
public class Student implements Serializable {
/**
* The Class.
*/
private Class class;
@ManyToOne()
@JoinColumn(name = "class_id")
public Class getClass() {
return this.class;
}
}
Main:
Class class = null;
UserTransaction.begin();
class = new Class();
class.setStudents(ListOfStudents);
EntityManager.persist(class);
UserTransaction.commit();
@实体
@表(name=“class”)
公共类实现可序列化{
私人长classId;
私人名单学生;
@身份证
@SequenceGenerator(name=“class\u id\u gen”,sequenceName=“seq\u class\u id”,allocationSize=1)
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“class\u id\u gen”)
@列(name=“class\u id”,unique=true,nullable=false)
公共长getClassId(){
返回classId;
}
@OneToMany(mappedBy=“class”,cascade=CascadeType.ALL)
公共列表getStudent(){
归还这个。学生;
}
}
@实体
@表(name=“student”)
公共类学生实现可序列化{
/**
*这个班。
*/
私人班级;
@ManyToOne()
@JoinColumn(name=“class\u id”)
公共类getClass(){
返回此.class;
}
}
主要内容:
Class=null;
UserTransaction.begin();
class=新类();
班级设置学生(学生名单);
EntityManager.persist(类);
提交();
每隔两天就会问一次这个问题。此双向关联的所有者端是不存在mappedBy属性的端。这是Hibernate用来知道关系是否存在的那一面
您初始化了关联的一端(clazz.setStudents(…)
),但这一端不是所有者端。因此,Hibernate不知道关联是否存在并且必须持久化
您必须初始化另一端:所有者端:
for (Student s : listOfStudents) {
s.setClazz(clazz);
}
这个问题每两天问一次。此双向关联的所有者端是不存在mappedBy属性的端。这是Hibernate用来知道关系是否存在的那一面 您初始化了关联的一端(
clazz.setStudents(…)
),但这一端不是所有者端。因此,Hibernate不知道关联是否存在并且必须持久化
您必须初始化另一端:所有者端:
for (Student s : listOfStudents) {
s.setClazz(clazz);
}