Opa pessoal beleza? me encontrei em uma situação e estou com algumas duvidas, se puderem me dar um norte... vamos lá!
Tenho uma classe Person porem, preciso separar já pensando no formulário da aplicação web, pessoa jurídica e física.
Tenho uma classe também que se chama Post, e ela precisa ter um Person e o Person tem uma Lista de Post.
Show!
Eu estou na duvida é na estrategia, em como vou salvar esse Client.
Fiz assim:
Classe Person
@Data
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "logo")
private String imageUrl;
@Column(name = "contato")
private String contact;
Fiz uma Herança: PersonLegal
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
public class PersonLegal extends Person {
@Column(name = "razao_social")
private String socialReason;
Classe PersonPhysical
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
public class PersonPhysical extends Person {
private String name;
@Column(length = 11)
private String cpf;
Reparem que utilizei essa anotação na classe pai person:
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
Pelo que pesquisei, apenas as classes concretas serão geradas, ou seja as filhas, mas acho que o id delas podem ser igual.
Agora no meu Post, eu preciso colocar um Person lá, que ele possui
Post:
ManyToOne
@JoinColumn(name = "person_id")
private Person person;
E no Person eu tenho uma lista de Post
@JsonIgnore
@OneToMany(mappedBy = "person", fetch = FetchType.LAZY)
private List<Post> posts;
Perguntas:
1 - Essa estrategia de ele criar apenas as classes filhas é o recomendado nesse caso?
2 - Esta dando erro na minha classe Post, quando coloco o Person lá erro:
'Basic' attribute type should not be 'Persistence Entity'
3 - Quando eu salvar um um Person, como vai ser a minha Repository? Eu vou ter que criar um repository para as filhas e tambem para o pai?
To bem confuso, se puderem ajudar, vai me salvar
Abraços