Olá Pessoal
Tenho as seguintes classes que refletem tabelas no db:
@Entity
public class Loja {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(updatable = false, nullable = false)
private Long id;
@OneToOne
@JoinColumn(nullable = false)
private User user;
@Column(length=100)
private String name;
//GETTERS AND SETTERS
}
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(updatable = false, nullable = false)
private Long id;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private Loja loja;
@Column(length=100, unique=true)
private String email;
@Column
private String tipo;
//GETTERS AND SETTERS
}
Minha dúvida:
Tenho dois tipos de usuários: dono e cliente.
Dono possuirá uma Loja. Cliente, obviamente não.
Estou tentando aplicar na prática, os conceitos de interface e implements.
No caso, eu criaria uma interface Dono e uma interface Cliente?
E teria um DAO para cada?
Ou teria uma entity pra cada? Mas e se eu aumentasse a variedade de tipos de usuario?
Obrigado!!!