Hibernate - @Column

Posted by dogukanhan on June 12, 2020 · 1 min read

Entity içerisinde yer alan field’larda kullanılır ve entity’nin veritabanında yer alan schemasına ait ayarlamalar yapılabilir. Bu ayarlamalar sutün ismi, not null gibi ayarlardır.

  • name: Değerin saklandığı veritabanı sütünun isminin belirlenmesinde kullanılır.
  • unique: Değerin benzersiz olup olmadığını belirtir, eğer benzersiz ise farklı kayıtlar içinde tekrarlayamaz.
  • nullable: Değerin null olup olamayacağını belirtir.
  • insertable: Eğer false değeri verilirse Field insert sorgusunda yer almaz.
  • updatable: Eğer false değeri verilirse Field update sorgusunda yer almaz.
  • columnDefination: Field tanımlanırken kullanılan DDL’i override eder bu alanda veritabanına özgü(taşınamaz) DDL statement’lar yazılabilir.
  • table: Field’in kullanılacağı tabloyu belirtir
  • length: Sadece String’lerde kullanılır, string’in uzunluğunu belirtir.
  • precision: Decimal değerler için kullanılır.
  • scale: Decimal değerler için kullanılır

@Column Annotation örnek kullanımı:

@Entity
public class Student {

    @Id
    @GeneratedValue
    private Long id;
    
    @Column(name = "student_name", nullable = false, length = 25)
    private String name;

    @Column(name = "student_last_name", nullable = false, length = 25)
    private String lastName;

    @Column(name = "student_email", nullable = false, unique = true, length = 100)
    private String email;

    @Column(name = "student_password", nullable = =false, length = 32)
    private String password;

    @Column(name = "student_number", nullable = false, unique = true, length = 16)
    private String number;
}