2.1 Anotasi @Entity, @Tabel

Yen sampeyan pengin peta kelas menyang tabel ing database, sampeyan kudu nambah 3 anotasi.

Pisanan, sampeyan kudu nambah anotasi menyang kelas @Entity. Anotasi iki ing ngarep kelas bakal ngandhani Hibernate yen iki ora mung kelas, nanging kelas khusus sing obyek kudu disimpen ing database.

Tuladha:

@Entity
class User {
    public int id;
    public String name;
    public int level;
    public Date createdDate;
}

Iki cukup kanggo Hibernate kanggo nambani obyek saka kelas iki kanthi cara khusus.

Anotasi kapindho yaiku @Table. Kanthi bantuan, sampeyan bisa nyetel jeneng tabel ing database sing kelas iki bakal digandhengake. Tuladha:

@Entity
@Table(name="user")
class User {
    public int id;
    public String name;
    public int level;
    public Date createdDate;
}

Yen jeneng kelas lan jeneng tabel padha, banjur anotasi @Tablebisa diilangi.

Uga, yen aplikasi sampeyan bisa digunakake karo tabel saka sawetara skema ing wektu sing padha, sampeyan kudu nemtokake skema tartamtu ing tabel kasebut:

@Entity
@Table(name="user", schema="test")
class User {
    public int id;
    public String name;
    public int level;
    public Date createdDate;
}

Ya, kabeh iku minangka prasaja minangka misale jek.

2.2 @Kolom anotasi

Kapindho sing penting kanggo ngerti yaiku pemetaan kolom tabel menyang lapangan kelas. Ing versi sing paling gampang, Hibernate mung bakal nggawe peta lapangan kelas entitas menyang kolom tabel sing dikarepake.

Yen sampeyan pengin ngontrol kabeh nuansa pemetaan, sampeyan bisa nggunakake anotasi @Column. Tuladha:

@Entity
@Table(name="user")
class User {
   @Column(name="id")
   public Integer id;

   @Column(name="name")
   public String name;

   @Column(name="level")
   public Integer level;

   @Column(name="created_date")
   public Date createdDate;
}

Anotasi kasebut @Columnnduweni macem-macem parameter, ing ngisor iki kita bakal nimbang sing paling populer:

# Jeneng atribut Tipe atribut Katrangan
1 jeneng String Nyetel jeneng kolom tabel kanggo kolom kelas
2 unik boolean Kabeh nilai lapangan kudu unik
3 nullable boolean Lapangan bisa null
4 dawa int Dawane maksimal (kanggo senar)

Ayo ditambahake sawetara kendala ing kolom kelas Entitas Panganggo:

  • jeneng panganggo kudu unik lan ora luwih saka 100 karakter
  • level bisa null
  • createdDate ora bisa null

Banjur anotasi kita dadi:

@Entity
@Table(name="user")
class User {
   @Column(name="id")
    public Integer id;

   @Column(name="name", unique=true, length=100)
   public String name;

   @Column(name="level", nullable=true)
   public Integer level;

   @Column(name="created_date", nullable=false)
   public Date createdDate;
}

Sampeyan bisa nggawe obyek saka jinis Pangguna lan malah nemtokake kabeh kolom null , Nanging, nalika nyoba kanggo nyimpen ing database, Hibernate bakal nindakake mriksa, lan yen ana watesan sing dilanggar, pangecualian bakal dibuwang.

2.3 @anotasi id

Lan siji anotasi sing luwih penting yaiku @Id. Bisa digunakake kanggo nyetel tombol utama kanggo tabel.

Sampeyan mung kudu nemtokake anotasi iki kanggo kolom sing dikarepake - lan Hibernate bakal nindakake kabeh dhewe:

@Entity
@Table(name="user")
class User {
   @Id
   @Column(name="id")
   public Integer id;

   @Column(name="name")
   public String name;

   @Column(name="level")
   public Integer level;

   @Column(name="created_date")
   public Date createdDate;
}

Yen sampeyan pengin Hibernate ngasilake ID obyek kanthi mandiri nalika nambahake menyang database, sampeyan kudu nambah siji anotasi - @GeneratedValue. Banjur conto kita bakal katon kaya iki:

@Entity
@Table(name="user")
class User {
   @Id
   @GeneratedValue
   public Integer id;

   @Column(name="name")
   public String name;

   @Column(name="level")
   public Integer level;

   @Column(name="created_date")
   public Date createdDate;
}

Kita ngilangi anotasi @Columnkanggo lapangan id ing kene, amarga ora nggawa informasi sing penting - jeneng lapangan lan jeneng kolom ing tabel padha, lan thanks kanggo anotasi liyane, Hibernate wis ngerti yen kita ngomong babagan tabel. kolom.