package pl.bartoszliszka.LessonsOfSwim.controllers; import org.apache.catalina.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import pl.bartoszliszka.LessonsOfSwim.models.UserEntity; import pl.bartoszliszka.LessonsOfSwim.models.services.UserService; import javax.validation.Valid; @Controller public class LoginController { @Autowired UserService userService; @RequestMapping("/login") public String login(){ return "login"; } @RequestMapping("/register") public String register(Model model){ model.addAttribute("user", new UserEntity()); return "register"; } @RequestMapping(value = "/login", method = RequestMethod.POST) public String saveUser(@Valid User user){ userService.saveUser(user); return "redirect:/login"; } } package pl.bartoszliszka.LessonsOfSwim.models; import lombok.Data; import javax.persistence.*; import javax.validation.constraints.NotEmpty; import java.util.Date; @Entity @Data @Table(name = "user") public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id_user") private int id; @Column(name = "first_name") private String firstName; @Column(name = "last_name") private String lastName; @Column(name = "email") private String email; @Column(name = "password") private String password; @Column(name = "password_repeat") private String passwordRepeat; @Column(name = "phone_number") private String phoneNumber; @Column(name = "gender") private String gender; @Column(name = "date_of_birth") private Date dateOfBirth; public UserEntity() { } public UserEntity(String firstName, String lastName, String email, String password, String passwordRepeat, String phoneNumber, String gender, Date dateOfBirth) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.password = password; this.passwordRepeat = passwordRepeat; this.phoneNumber = phoneNumber; this.gender = gender; this.dateOfBirth = dateOfBirth; } } package pl.bartoszliszka.LessonsOfSwim.models.services; import org.apache.catalina.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import pl.bartoszliszka.LessonsOfSwim.models.repository.UserRepository; import javax.transaction.Transactional; @Component public class UserService { @Autowired UserRepository userRepository; @Transactional public void saveUser(User user) { userRepository.createUser(user); } } package pl.bartoszliszka.LessonsOfSwim.models.repository; import org.apache.catalina.User; import org.springframework.stereotype.Repository; import pl.bartoszliszka.LessonsOfSwim.models.UserEntity; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.Transactional; import java.util.Date; @Repository public class UserRepository { @PersistenceContext private EntityManager em; @Transactional public void createUser(User user){ em.persist(user); } @Transactional public void createUser(String firstName, String lastName, String email, String password, String passwordRepeat, String phoneNumber, String gender, Date dateOfBirth){ UserEntity user=new UserEntity(firstName, lastName, email, password, passwordRepeat, phoneNumber, gender, dateOfBirth); em.persist(user); } @Transactional public User getUser(int id){ return em.find(User.class, id); } }