Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Murillo Pezzuol

Hibernate @Id no campo String não cria tabela

Recommended Posts

Na sessão onde criamos nossa tabela de Usuário e Role, usamos anotações Hibernate.

Quando eu crio minha classe Usuario e Role no curso o professor deixa o campo 'email' da classe Usuario e 'nome' da classe Role como @Id.

Quando eu subo meu servidor, no console ele aparece o create das tabelas, porém no banco ele não cria as tabelas. Se eu anotar o @Id em um campo int, ele funciona, porém em campo String não.

O que devo fazer? já tentei de tudo, e eu não queria deixar Usuario e Role com campo id atoa só para funcionar.

 

 

Segue abaixo a classe de como o curso nos mostra, porém ele não cria a tabela no banco com o @Id em um campo String. No Console aparece o 'create table' normalmente, porém no banco não é criado a tabela. Toda vez que sobe a aplicação ele diz que criou a tabela, mas não cria.

@Entity
public class Usuario implements UserDetails{

    private static final long serialVersionUID = 1L;

    @Id
    private String email;
    private String nome;
    private String senha;

    @OneToMany(fetch=FetchType.EAGER)
    private List<Role> roles = new ArrayList<Role>();

     //Métodos e outros....
    //Getter's and Setter's...

}

 

Para criar a tabela eu preciso criar o @Id em um campo int, long etc.. Segue abaixo.

@Entity
public class Usuario implements UserDetails{

    private static final long serialVersionUID = 1L;


    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    private String email;
    private String nome;
    private String senha;

    @OneToMany(fetch=FetchType.EAGER)
    private List<Role> roles = new ArrayList<Role>();


    //Métodos e outros....
    //Getter's and Setter's...

}

 

Quero criar a tabela de acordo com o que está no curso, em um campo String, como poderia ser feito?

Estou utilitando o banco MySQL 8.0.13.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.