Как с помощью isPresent() сделать проверку в JpaRepository?

335
22 января 2017, 14:42

Нужно проверить если ли пользователь в БД и если нет создать такого.

Имется сам пользователь

@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@Column(name = "USERNAME", unique = true)
private String username;
@Column(name = "PASSWORD")
private String password;
@Transient
@Column(name = "CONFIRM_PASSWORD")
private String passwordConfirm;
@ManyToMany
@JoinTable(name = "user_roles",
        joinColumns = @JoinColumn(name= "USER_ID"),
        inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
private Set<Role> roles;

сервис где я и хочу проверить

@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private RoleRepository roleRepository;
@PostConstruct
public void unit() {
userRepository.findByUsername("admin").isPresent(user -> {
        user. и тут тупик нет ни setUsername ни setPassword
    });

UserRepository

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByUsername(String username);
}

Можно конечно проверить через !=null но хочется пощупать isPresent Что не так?

READ ALSO
Не открывается .jar (IDEA IntelliJ)

Не открывается .jar (IDEA IntelliJ)

Столкнулся с проблемой при созданииjar в IDEA

304
Проблема с кодировкой autocomplete

Проблема с кодировкой autocomplete

Причина в том что когда вытаскиваю с запроса строку (введеную в поле) вместо русских символов выводятся крякозябры

328
Что происходит в компиляторе?

Что происходит в компиляторе?

Исходный текст программ на Java состоит из совокупности пробелов, идентификаторов, литералов, комментариев, операторов, разделителей и ключевых...

315
Ограничена ли многомерность массива?

Ограничена ли многомерность массива?

Вот объявляется переменная двухмерного массива mas

322