@Transactionnal 
	User txFindUser(String email) throws DuplicateUserEmailDetected {
		// Using named queries. 
		// Eventually look into adding them in mapping document to avoid overloading the entity class with annotations...
		// My goal with named queries is to get compile-time checks vs potential runtimes after entity refactorings.
		List<?> list = HibernateUtil.getCurrentSession().createQuery("from User as u where u.email like :email ").setString("email", email).list();
		
		// This is a fail-state.
		if( list.size() > 1 ) {
			throw new DuplicateUserEmailDetected();
		}
		
		// We found a single existing user.
		if( list.size() == 1 ) {
			return (User) list.get(0);
		}
		
		// We're done.
		return null ;
	}