1
resposta

Kotlin no Spring

Opa pessoal, eu estou usando o Kotlin para o Spring boot, tenho um projeto pronto em Java e criei o mesmo só que em kotlin para praticar.

No meu metodo findby em java esta assim:

 @Transactional(readOnly = true)
    public Post findBy(Long id) {
        Optional<Post> obj = repository.findById(id);
        return obj.orElseThrow(() -> new ObjectNotFoundException("Objeto não encontrado! Id: "
                + id + ", Tipo: " + Post.class.getName()));
    }

Eu queria passar ele em kotlin mas estou com dificuldades, eu cheguei a fazer assim:

@Transactional(readOnly = true)
    fun findBy(id: Long): Post {
        val obj = postRepository.findById(id)
        if (obj.isPresent) {
            return obj.get()
        } else {
            throw ObjectNotFoundException("Objeto não encontrado")
        }
    }

Mas não me convence kk, deve ter algo mais sucinto de trabalhar. Alguém poderia me dar uma dica?

1 resposta

Pessoal acho que consegui fiz dessa forma

  @Transactional(readOnly = true)
    fun findBy(id: Long): Post = postRepository.findById(id)
            .orElseThrow { ObjectNotFoundException(message = "Objeto não encontrado") }

Vou esperar alguém responder ai se essa abordagem é considerável ou não e depois fecho