Skocz do zawartości

poczatkujacy

Członkowie
  • Postów

    1
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez poczatkujacy

  1. 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";
    		}
    
    	}

     

×
×
  • Utwórz nowe...