Hibernate Spring - 一对多

时间:2015-12-02 00:11:35

标签: spring hibernate

我正在开发一个用Spring和Hibernate完成的JEE学校项目。我的表是:

违规

id_infraction

描述

DOSSIER

id_dossier

描述

gravite

INFRACTIONDOSSIER

id_dossier

id_infraction

该应用程序可以很好地添加“违规”和“档案”并在jsp页面中检索它们。

应用程序应该能够在一个“档案”中添加多个“违规”,这就是我被阻止的地方; 我正在学习一对多标签,并在我的“档案”课程中实现它们,但由于我想要一个与添加违规行为分开并添加档案的表格,我不知道如何处理它。

以下是我在Dossier课程中添加的代码:

@OneToMany
private Set<Infraction> infractions;
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(
        name = "DOSSIERINFRACTION",
        joinColumns = @JoinColumn(name = "id_dossier"),
        inverseJoinColumns = @JoinColumn(name = "id_infraction")
)

我的AppController类部分处理添加档案

/*
 * Méthode d'ajout d'un dossier
 */
@RequestMapping(value = { "/new" }, method = RequestMethod.GET)
public String newDossier(ModelMap model) {
    Dossier dossier = new Dossier();
    model.addAttribute("dossier", dossier);
    model.addAttribute("edit", false);
    return "registration";
}

/*
 * Gère l'envoi du POST pour l'ajout de dossier ainsi que la validation du
 * formulaire
 * 
 */
@RequestMapping(value = { "/new" }, method = RequestMethod.POST)
public String saveDossier(@Valid Dossier dossier, BindingResult result, ModelMap model) {

    if (result.hasErrors()) {
        return "registration";
    }

    service.saveDossier(dossier);

    model.addAttribute("success", "Dossier " + dossier.getNom() + " enregistré");
    return "success";
}

用于记录档案的JSP表单

    <form:form method="POST" modelAttribute="dossier">
    <form:input type="hidden" path="id" id="id"/>
    <table>
        <tr>
            <td><label for="nom">Nom: </label> </td>
            <td><form:input path="nom" id="nom"/></td>
            <td><form:errors path="nom" cssClass="error"/></td>
        </tr>

        <tr>
            <td><label for="prenom">Prénom: </label> </td>
            <td><form:input path="prenom" id="prenom"/></td>
            <td><form:errors path="prenom" cssClass="error"/></td>
        </tr>

        <tr>
            <td><label for="plaque">Plaque: </label> </td>
            <td><form:input path="plaque" id="plaque"/></td>
            <td><form:errors path="plaque" cssClass="error"/></td>
        </tr>

        <tr>
            <td><label for="permis">Permis: </label> </td>
            <td><form:input path="permis" id="permis"/></td>
            <td><form:errors path="permis" cssClass="error"/></td>
        </tr>

        <tr>
            <td colspan="3">
                <c:choose>
                    <c:when test="${edit}">
                        <input type="submit" value="Mettre à jour"/>
                    </c:when>
                    <c:otherwise>
                        <input type="submit" value="Enregistrer"/>
                    </c:otherwise>
                </c:choose>
            </td>
        </tr>
    </table>
</form:form>

我的问题可能看起来有点愚蠢,但我怎样才能创建一个可以为档案添加多个违规行为的表单,以及如何显示档案中的违规行为?

谢谢你, 罗曼

0 个答案:

没有答案