-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: add modeled classes #11
base: master
Are you sure you want to change the base?
Conversation
acho que você poderia alterar o título desse pull request para incluir todas as classes que você criar, já que não são muitas e todas compões a feature de: modelar classes e ai nós fazemos o code review dessa festure com todas juntas já que todas se relacionam o que vocês acham ? @gabizinha12 @brMonteiro-G |
Eu concordo mas o Gabriel disse pra fazer uma por uma aí fiquei confusa kkk
Em sex, 15 de abr de 2022 01:37, Pedro Luiz ***@***.***>
escreveu:
… acho que você poderia alterar o título desse pull request para incluir
todas as classes que você criar, já que não são muitas e todas compões a
feature de: *modelar classes*
e ai nós fazemos o code review dessa festure com todas juntas já que todas
se relacionam
o que vocês acham ? @gabizinha12 <https://github.com/gabizinha12>
@brMonteiro-G <https://github.com/brMonteiro-G>
—
Reply to this email directly, view it on GitHub
<#11 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQGKNNORMTQ2N2P6RK4KQH3VFDW6ZANCNFSM5TPRALGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
oi, mas eu coloquei isso, só que em ingles, a unica coisa é que no código tá faltando o resto |
@Data | ||
@Entity | ||
@Builder | ||
@EqualsAndHashCode(of = "id") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Por qual motivo vc usou essa annotation do equals e hash code ?
Segundo o time do lombok:
Will soon be marked @deprecated; use the @EqualsAndHashCode.Include annotation together with @EqualsAndHashCode(onlyExplicitlyIncluded = true).
Ela usando "of" vai ser deprecada em breve,,,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cara não manjo muito de lombok kkk
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Não sabia disso, vou corrigir dps
import lombok.EqualsAndHashCode; | ||
import lombok.NoArgsConstructor; | ||
|
||
@AllArgsConstructor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isso serve para todas as classes:
Eu acho que a gente não deveria usar @DaTa nas entidades do JPA por que tem algumas chances de ter conflitos no futuro, essa annotation gera @tostring, @EqualsAndHashCode, @requiredargsconstructor e também @Getter e @Setter.
Tem um artigo legal falando sobre os "riscos" de algumas anotações do JPA com Lombok:
https://thorben-janssen.com/lombok-hibernate-how-to-avoid-common-pitfalls/
Em relação ao @AllArgsConstructor eu acho que a gente poderia colocar acesso private nele, visto que a gente vai usar o @builder então não vamos utilizar em outras partes da aplicação um construtor com os parametros da classes, mas o builder pattern:
@AllArgsConstructor(access = AccessLevel.PRIVATE)
Eu acho que a gente pode colocar o id dessas classes pra serem auto generated, assim cada objeto salvo gera um id automaticamente... uma forma seria:
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bem demais Pedrão, eu também não manjo muito de utilizar o lombok mas vou correr atrás pra ficar por dentro!
private List<String> ingredients = new ArrayList<>(); | ||
private List<String> preparingMode = new ArrayList<>(); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- quando a gente mapeia entidades, você pode omitir a inicialização destes objetos, ou seja, remover
= new ArrayList<>()
- se você estiver rodando no IntelliJ você deve estar vendo um warning como esse https://stackoverflow.com/questions/21059451/cannot-declare-list-property-in-the-jpa-entity-class-it-says-basic-attribute
- a gente precisa criar uma classe e representar isso com um relacionamento 1 -> N
- algo como
@OneToMany private List<Ingredient> ingredients;
@Setter | ||
@AllArgsConstructor(access = AccessLevel.PRIVATE) | ||
@Builder | ||
public class Recipe { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
precisamos de um @NoArgsConstructor
nessa classe também
Primeira classe de Receita criada.