Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como criar usuario em tempo de execucação - O retorno

Como faço para criar um usuário em execucação ?

Eu vi no https://cursos.alura.com.br/forum/topico-como-criar-usuarios-em-tempo-de-execucao-162705 que foi utilizado um método user.addAuthority("USER"); , porém, não explica aonde foi criado.

eu adaptei para isso

` package com.everis.delivery.model;

import lombok.Data;

import javax.persistence.*; import javax.validation.constraints.NotBlank; import java.util.HashSet; import java.util.List; import java.util.Set;

@Data @Entity @Table(name = "users") public class User {

@Id
@NotBlank
private String username;

@NotBlank
private String password;
private Boolean enabled;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "user", fetch = FetchType.LAZY)
private List<Pedido> pedidos;

@ElementCollection
@CollectionTable(name = "authorities", joinColumns = @JoinColumn(name = "username"))
private Set<Authority> authorities = new HashSet<>();


public void addAuthority(String user) {

    Authority auth = new Authority(user);
    authorities.add(auth);
}

} porém, está dando esse erro:

`rg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: com.everis.delivery.model.Produto.pedido

Poderia me ajudar, por gentileza?

1 resposta
solução!

Oi Fernando,

Pela mensagem de erro o problema está na sua classe Produto no atributo Pedido. Parece que você colocou nesse atributo a anotação @ManyToMany ou @OneToMany ao invés de @ManyToOne que seria a correta.