Walidacja formularzy w Spring'u

0

Witajcie,
Mam problem z zapisywaniem danych z wypełnionego formularza do bazy. Moja encja i fragment pliku JSP:

public class System {
    @Column(length = 256, unique = true, nullable = false)
    private String name;
    // Gettery i settery
}
<form:form commandName="system" modelAttribute="system">
    <form:label path="name">Your system name</form:label>
    <form:input path="name"/>
    <form:errors path="name"/>
    <input type="submit" name="submit" value="send"/>
</form:form>

Wypełniony formularz potrzebuję zapisać do bazy. Problem w tym że pole name w bazie jest unikalne. Napisałem anotację, pozwalającą walidować mi czy pole jest unikalne.

@UniqueField(clazz = System.class, fieldName = "name")

I tutaj też pojawia się moje pytanie. Powinienem:

  1. Tą adnotację umieścić w encji, która będzie zapisywana do bazy
  2. Wydzielić osobną klasę, na którą spring będzie mapował pola z formularza, na niej wykonać walidację (wraz z tą adnotacją) a następnie pola z niej przepisać na nowo stworzoną instancję encji i ją zapisać?

Proszę was o porady i wskazówki :D

Pozdrawiam

1

Dla mnie raczej naturalne jest oddzielenie Encji od DTO, https://en.wikipedia.org/wiki/Data_transfer_object http://www.oracle.com/technetwork/java/transferobject-139757.html

Najprościej mówiąc, to tak jak wspomniałeś, masz jeden obiekt UserForm (na przykład) i on jest "przekazywany" do kontrolera (również walidowany), a potem przepisujesz go na encje i zapisujesz do bazy.

0

Dzięki za szybką odpowiedz :) Właśnie o takie coś mi chodziło, chciałem się upewnić czy dobrze myślę

1 użytkowników online, w tym zalogowanych: 0, gości: 1