Приветствую уважаемые форумчане.
Подскажите пожалуйста, как правильно вернуть пользователя с данными?
Я сделал как смог ))) но это явно не правильно. Подскажите пожалуйста, как надо?
public final User getUserByEmail(final String email){
EntityManager entityManager = sessionFactory.createEntityManager();
entityManager.getTransaction().begin();
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> criteria = builder.createQuery( Object[].class );
Root<User> root = criteria.from( User.class );
Path<String> authEmailId = root.get( "email" );
Path<String> authPasswordId = root.get( "password" );
Path<String> authEnabledId = root.get( "enabled" );
criteria.multiselect( authEmailId, authPasswordId, authEnabledId );
criteria.where( builder.equal( root.get( "email" ), email ) );
List<Object[]> authLoginId = entityManager.createQuery( criteria ).getResultList();
entityManager.close();
// Далее начинается моя самодеятельность.
Object[] objects = authLoginId.get(0);
User user = new User();
user.setEmail(objects[0].toString());
user.setPassword(objects[1].toString());
user.setEnabled((Boolean) objects[2]);
return user;
}