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 faço?
Estou utilitando o banco MySQL 8.0.13.