Java 需要将未知数量的学生记录添加到学校记录

Java 需要将未知数量的学生记录添加到学校记录,java,javascript,jquery,hibernate,struts2,Java,Javascript,Jquery,Hibernate,Struts2,我有一个班级叫学校,里面有学生名单。我需要有一个注册页面来注册一所学校和它的所有学生。由于每个学校的学生人数未知,我需要在“学校注册”页面中有一个“添加学生”按钮,以允许用户逐个添加所有学生。我可以为每所学校创建注册表单,但不确定如何实现“添加学生”功能 我知道有一个“添加学生”按钮可以触发学生登记表的灯箱,但我不知道如何保存每个学生的详细信息,然后将其与学校记录关联;因为学生记录需要学校id,反之亦然。请注意,我不想提交学校记录,然后添加学生记录,我需要同时添加学校及其所有学生的详细信息 @E

我有一个班级叫学校,里面有学生名单。我需要有一个注册页面来注册一所学校和它的所有学生。由于每个学校的学生人数未知,我需要在“学校注册”页面中有一个“添加学生”按钮,以允许用户逐个添加所有学生。我可以为每所学校创建注册表单,但不确定如何实现“添加学生”功能

我知道有一个“添加学生”按钮可以触发学生登记表的灯箱,但我不知道如何保存每个学生的详细信息,然后将其与学校记录关联;因为学生记录需要学校id,反之亦然。请注意,我不想提交学校记录,然后添加学生记录,我需要同时添加学校及其所有学生的详细信息

@Entity
public class School {
    @Id
    @GeneratedValue
    private long id;
    private String name;
    private String principal;
    private String city;
    @OneToMany
    private List<Student> students;
    ....
}

@Entity
public class Student {
    @Id
    @GeneratedValue
    private long id;
    private String name;
    private int age;
    @OneToOne
    private School school;
    ....
}
@实体
公立学校{
@身份证
@生成值
私人长id;
私有字符串名称;
私有字符串主体;
私人城市;
@独身癖
私人名单学生;
....
}
@实体
公立班学生{
@身份证
@生成值
私人长id;
私有字符串名称;
私人互联网;
@奥内托内
私立学校;
....
}
表格

    <s:form method="POST" action="register">
        <s:textfield name="name" label="School's name"/>
        <s:textfield name="principal" label="Principal"/>
        <s:textfield name="city" label="City"/>

    </s:form>

因此,如果我正确理解了问题,您有一个页面来创建学校实体,创建学校后,您希望它接着进入一个页面来注册每个学生

对于学生列表,零是一个完全有效的大小,因此创建没有一个学生的学校应该没有问题。确保并将更改保存到数据库

“添加学生”页面需要传递学校ID,以便将该信息关联到正确的学校。(在url中或作为查询字符串)另一种方法是使用可能学校的下拉框,让他们从现有学校中选择自己的学校


创建学生时,您将适当分配其学校ID,并将该学生添加到学校的学生列表中。然后将修改内容再次保存到数据库中

表达双方的关系通常不是必要的,也不是有益的。事实上,你会在学校里有一个学生名单的主要原因是如果有不变量需要强制执行,比如增加的学生数量有限。即便如此,由于可能有数千名学生,这样做也可能不切实际。我只会表达从多到一(学生)的关系,我甚至不会封装
学校
对象,只是它的id。@plalx死了,这意味着我应该在学生班级的学校场上有多个关系?您不封装学校对象是什么意思?我的意思是,您也可以简单地将学校的
id
保存在
Student
上,而不是保存在
school
对象上,但是保持一个
学校
对象也可以。@plalx我保存了学校学生的列表,以便更容易检索每个学校的学生。假设我要根据学校的主要名称搜索学校的学生,在这种情况下,我需要首先检索学校的id,然后使用该id查找所有学生,但在这种情况下,我可以使用单个查询检索所有学生。学生懒惰,其中可能是孤儿,将他们保持在一种关系中将是过时的。可以按照OWL级别1建立与对象模型的关系。错误或不必要的关联会导致不正确的设计和对象流。在尝试实现这些特性时,请记住现有的模式,如表之间的主-细节关系,这些关系可能映射为每个类的表。