Problemas no relacionamento OneToOne

4 respostas
D

Boa noite.

Estou com problema ao relaciona gerente com user:

Classe Users:

@Entity(name="Users")
@Table(name = "tbl_users")
public class Users implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id_users")
    private int idUsers;
    
    @Column(name = "login", nullable = false)
    private String login;
    
    @Column(name = "senha", nullable = false)
    private String senha;

    private String nome;
    //private String telefone;
    
    //@OneToOne(cascade = CascadeType.ALL)
    @OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
    private Gerente gerente;

    @OneToOne(cascade = CascadeType.ALL)
    private Caixa caixa;
    
    @OneToOne(cascade = CascadeType.ALL)
    private Frentista frentista;

    public Users() {
    }

Classe Gerente:

@Entity(name="Gerente")
@Table(name = "tbl_gerente")
public class Gerente extends Users implements Serializable {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id_gerente")
    private int idGerente;

    @OneToOne
    @MapsId
    private Users users;

Alguém sabe qual meu erro? Pq não consigo relacionar Um Usuário para Um Gerente?

Obrigado.

4 Respostas

Mike

Seria interessante você apontar o erro, mas talvez seja isso:

A classe Gerente possui um objeto Users chamado users e não user

Lucas_Camara

Gerente É UM User? Ou User POSSUI UM Gerente?

D

Gerente é um user. Como é essa ideia de um user possui gerente?

Lucas_Camara

Isso vai de mapeamento para mapeamento. Na verdade eu imaginei que Gerente é um User mesmo, mas perguntei para ter certeza msm. Nesse caso, vc tem que implementar um mapeamento com herança (JOINED). Mas para isso funcionar direito, vc deve ter criado uma especialização no banco para Gerente e User.

Criado 30 de março de 2019
Ultima resposta 31 de mar. de 2019
Respostas 4
Participantes 3