Sobes.tech
Junior — Middle

Ҳамчун истифодаи JPA, кадом талаботи асосӣ ба синфҳои Entity пешниҳод мешавад?

sobes.tech AI

Ҷавоб аз AI

Талаботи асосии синфҳои Entity ҳангоми истифодаи JPA:

  • Синф бояд бо @Entity нишонзанад.
  • Бояд конструктори умумӣ ё ҳимояшудаи бе параметр дошта бошад.
  • Синф бояд як идентификатори беназир дошта бошад, ки бо @Id нишонзанад.
  • Майдонҳои синф метавонанд хусусӣ бошанд, аммо бояд геттер ва сеттер дошта бошанд.
  • Синф набояд финалӣ бошад, то JPA тавонад прокси созад.
  • Тавсия дода мешавад, ки методҳои equals() ва hashCode() бар асоси идентификатор амалӣ карда шаванд.

Масалан:

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    protected User() {} // конструктор по умолчанию

    public User(String name) {
        this.name = name;
    }

    public Long getId() { return id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}