【问题标题】:How to add student to student group如何将学生添加到学生组
【发布时间】:2017-10-19 17:38:39
【问题描述】:

我不知道如何将学生添加到学生组我的代码如下所示:

型号:

@Entity
@Table(name = "groups")
public class Groups extends BaseEntitity {


    @Column(name = "group_name", nullable = false, length = 20)
    private String GroupName;

学生:

@Entity
@Table(name = "student")
public class Student extends BaseEntitity{



@Column(name = "name", nullable = false, length = 35)
private String name;

@Column(name = "last_name", nullable = false, length = 20)
private String last_name;

@Column(name = "birth_date", nullable = false)
private String birth_date;

@Column(name = "city", nullable = false, length = 30)
private String city;

学生团体:

@Entity
@Table(name="student_group")
public class StudentGroup extends  BaseEntitity {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_student", nullable = false)
private Student student;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_group", nullable = false)
private Group group;

我想通过单击学生旁边的按钮将学生添加到组中,转到包含组的页面,然后单击所选组旁边的按钮将之前选择的学生添加到该组中,如下所示:

<td>${student.birthDate}</td>
                        <td>${student.city}</td>

                        <td> <a href="${goToGroupURL}" class="btn btn-primary">Add Group</a></td>

<c:forEach items="${groupList}" var="group">
                <tr>
                    <td>${group.id}</td>
                    <td>${group.GroupName}</td>
                    <td> <a href="${addGroupURL}/${group.id}" class="btn btn-primary">Add Group</a></td>
                </tr>
            </c:forEach>

服务:

@Service
public class AddGroupServiceImpl implements AddGroupService {
@Autowired
private StudentGroupDAO studentGroupDAO;

@Autowired
private GroupDAO groupDAO;

@Override
@Transactional
public void addStudentToGroup(Student student, Group Group) {
    StudentGRoup studentGroup = new StudentGroup(student, group);

    studentGroupDAO.save(studentGroup);
    groupDAO.save(group);

控制器:

  @RequestMapping(value = "/add-student/group/{groupId}")
public String createStudentGroup(@PathVariable Long groupId, Lond studentId, Principal principal, RedirectAttributes redirectAttributes) {



    Group group = groupDao.findOne(groupId);
    Student student = studentDao.findOne(studentId);



    addGroupService.addStudentToGroup(student, group);

StudentGroupDAO:

@Repository public interface StudentGroupDAO extends JpaRepository<StudentGroup, Long> { }

我不知道如何在控制器和jsp中做到这一点,有人可以帮忙吗?

【问题讨论】:

    标签: java mysql spring hibernate jsp


    【解决方案1】:

    总的来说,这个概念似乎很好。问题是您将分离的实体传递给持久性提供程序进行保存。

    尝试将 ID 传递给事务服务并在那里执行查询:

    @Override
    @Transactional
    public void addStudentToGroup(Integer studentId, Integer groupId) {
        Group group = groupDao.findOne(groupId);
        Student student = studentDao.findOne(studentId);
    
        StudentGrupa studentGrupa = new StudentGrupa(student, grupy);
    
        studentGroupDAO.save(studentGroup);
        groupDAO.save(group);
    }
    

    不确定studentGroupDAO.save 内部发生了什么,但现在您将保存托管实体。

    【讨论】:

    • findOne 方法是否产生非空结果?你也有任何错误吗?还是只是更改没有反映在数据库中?
    • 我不知道如何创建控制器,我按照你说的做服务,但现在我的控制器看起来像这样:@RequestMapping(value = "/add-student/group/{groupId}" ) 公共字符串 AddStudentToGroup() { addGroupService.addStudentToGroup(); }
    • addGroupService.addStudentToGroup(这里是 id's);但是我想从jsp中选择这个学生和组,那么如何在jsp中选择这个id?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2020-01-16
    • 2022-08-03
    • 1970-01-01
    • 2014-01-08
    • 2014-08-02
    相关资源
    最近更新 更多