poczatkujacy Napisano Styczeń 8, 2015 Zgłoś Udostępnij Napisano Styczeń 8, 2015 Witam ,mam następujący problem. Robie aplikacje w Springu i jestem w trakcie tworzenie rejestracji. Jak sprawdzić czy dany rekord istnieje w bazie danych i by blokowalo mi jego dodanie ? Tak aby metoda nie wiem zwracala np null jestli nie ma takiego uzytkownika albo false.Jeśli chodzi o zapytania to probowalem już kilka rozdzajow nawet z criteriami ale nadal jakiś problem. Porownywalem to co zwraca ta metoda w klasie processform,ale zamiast robic to co chcialem,to dodaje tylko duplikaty do bazy. public class RegisterServiceImpl implements RegisterService { @Autowired RegisterService dao; protected final Logger log = LoggerFactory.getLogger(getClass()); protected SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Register getUser(Register register) { return (Register)sessionFactory.getCurrentSession().get(Register.class.getName(), register.getUsername()); } public void add(Register user){ sessionFactory.getCurrentSession().saveOrUpdate(user); sessionFactory.getCurrentSession().flush(); } public boolean exists (Register user) { Query query = sessionFactory.getCurrentSession(). createQuery("select 1 from Register u where u.username =:username"); query.setString("username", user.getUsername() ); return (query.uniqueResult() != null); } @RequestMapping(value="/register.html", method=RequestMethod.POST) public String processForm(Model model, @ModelAttribute("register") Register user, BindingResult result,HttpSession session){ validator.validate(user, result); List<FieldError> errors =result.getFieldErrors(); for (FieldError objectError : errors) { System.out.println(objectError.getRejectedValue()); } if(result.hasErrors()){ return "register"; } if(dao.exists(user)==true) { return "registeFail"; } else { dao.add(user); return "registerInfo"; } } Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.